我从之前的问题中了解到,空格与Objective-C中的指针声明无关,例如:
float* powerPtr;
float * powerPtr;
float *powerPtr;
的意思完全相同(除了风格考虑因素......),但
(float *)powerPtr;
(带括号)也一样吗?不要隐含这些括号"意思是"星号应该以某种方式与 float 相关,而它应该与 powerPtr 在逻辑上更相关? (实际的指针实际上是powerPtr,而不是浮动,如果我是对的)
答案 0 :(得分:0)
您的代码:
(float *)powerPtr;
不是(Objective-)C中的有效声明。
这是一个表达式,它将变量powerPtr
中的值转换为float *
类型。
该转换的结果只是因为未使用而被丢弃,您的编译器可能会发出警告 - Xcode 8发出"表达式结果未使用"。
<强>附录强>
根据您的评论,您显示的语法应该是方法声明的一部分,例如类似的东西:
- (void)doSomething:(float *)powerPtr;
会在@interface
中发生。此处的括号不用于分组本身,而是用于分隔类型。至于你关注:
不要隐含这些括号&#34;表示&#34;星号应该以某种方式与
float
相关,而它应该与powerPtr
在逻辑上更相关?
*
是类型的一部分,float *
是&#34;指向float&#34;的指针的类型规范。标识符powerPtr
与整个类型规范相关联。
HTH