提问人: 提问时间:8/22/2008 最后编辑:Brian Tompsett - 汤莱恩 更新时间:1/31/2016 访问量:1242
什么是“null 定义的宏”?
What's a 'null defined macro'?
问:
我正在学习 objective-C 和 Cocoa。在我正在学习的 Apple 教程中,有一个旁注说:
IBOutlet
是一个 null 定义的宏,C 预处理器在编译时将其删除。
我很好奇 - 什么是空定义的宏?
答:
8赞
Greg Hewgill
8/22/2008
#1
#define IBOutlet
每当在程序文本中使用 IBOutlet 时,它都会被替换为任何内容。
8赞
Matt Dillard
8/22/2008
#2
仅供参考,在这种特殊情况下,偶数存在的原因很简单,以便Interface Builder可以解析源文件并从中收集一些理解。这是一个线索(嗯,比线索更强一点),在设计 UI 时,前面的变量应该在 Interface Builder 中显示为 Outlet。IBOutlet
IBOutlet
7赞
botismarius
9/5/2008
#3
null 定义的宏是预处理器将不替换为任何内容(将被删除)的宏。它的作用是提供有关代码中某些内容的提示,例如:
#define IN #define OUT #define INOUT int myFunction(IN char *name, INOUT char *address, OUT char *phone);
此声明表明是函数的输入变量,既是输入又是输出,是输出变量。name
address
phone
评论
1赞
schwa
10/4/2008
真是太可爱了。让我想起了艾达(显然)。我更喜欢在参数名称前面加上 in 或 out。但效果相同。
0赞
Kos
1/7/2011
同样,除了没有用疯狂的宏污染命名空间。;)
0赞
schwa
9/29/2008
#4
此外,如果您不确定任何内容是如何定义的,请双击它,Xcode 将在原始源文件中打开定义。
0赞
schwa
9/29/2008
#5
哦,当我在的时候。选项双击将(尝试)打开双击符号的文档。
评论
3赞
Amarghosh
10/18/2010
为什么不合并两个答案并删除一个?
评论