什么是'null定义的宏'?

时间:2008-08-22 09:55:48

标签: objective-c c-preprocessor

我正在学习Objective-C和Cocoa。在Apple教程中,我正在编写一份附注说:

  

IBOutlet是一个空定义的宏,C预处理器在编译时删除。

我很好奇 - 什么是空定义的宏?

5 个答案:

答案 0 :(得分:8)

#define IBOutlet

每当在程序文本中使用IBOutlet时,它都将被替换为任何内容。

答案 1 :(得分:8)

仅供参考,在这种特殊情况下,IBOutlet甚至存在的原因只是让Interface Builder可以解析源文件并从中收集理解的内容。这是一个线索(好吧,比线索强一点),在设计UI时,IBOutlet前面的变量应该在Interface Builder中显示为Outlet。

答案 2 :(得分:7)

一个空定义的宏是一个宏,它将由预处理器替换为任何内容(将被删除)。它的作用是在代码中提供一些提示,例如:

#define IN
#define OUT
#define INOUT

int myFunction(IN char *name, INOUT char *address, OUT char *phone);

此声明表明name是函数的输入变量,address是输入和输出,phone是输出变量。

答案 3 :(得分:0)

另外 - 如果你不确定如何定义 - 命令双击它,Xcode将打开原始源文件中的定义。

答案 4 :(得分:0)

哦,而我正在接受它。双击选项将(尝试)打开双击符号的文档。