【发布时间】:2010-05-29 03:24:04
【问题描述】:
这是一个来自在 Mac 上学习 Objective-C 的问题...
函数作为指针
根据食谱,我输入的是:
NSString *boolString (BOOL yesNo) {
if (yesNo) { return (@"YES");
} else { return (@"NO");
} } // boolString
第一行中的指针星号似乎没有必要,但删除它会导致错误消息。但它有什么作用?在
NSString * boolString (yesNo);
似乎正在发生的事情是一个函数被定义为一个指向 NSString 的指针。没有星号的函数
NSLog (@"are %d and %d different? %@", 5, 5, boolString(areTheyDifferent));
返回 YES 或 NO 的 NSString。但是当它是一个指针时,它怎么能返回一个 NSString 呢?它可能会返回一个 NSString 的 ADDRESS;或者如果取消引用,它可以返回该地址的内容(一个 NSString,例如 YES 或 NO)。但是我看不到它被取消引用的地方。
【问题讨论】:
-
下次请格式化您的代码。
标签: objective-c function-pointers