【发布时间】:2011-03-12 23:12:21
【问题描述】:
#defines 在 Objective-C 中如何工作?
我有 C/C++ 背景,现在正在尝试学习 Objective-C。 #defines 在 Objective-c 中的工作方式似乎与在 c 和 C++ 中的工作方式不同,编译器只是将所有对定义的引用替换为它们应该表示的内容。
当我尝试在 Objective-C 中使用 #defines 时,它们有时只能工作。就像当我做这样的事情时;
#define NUMBER 5
int myArray[NUMBER];
我收到编译器错误,提示缺少方括号,如果我使用此行代替它可以正常工作;
int myArray[5];
这些肯定应该是同一个东西吧?
此外,如果我尝试在任何类型的方程式中使用#define 值,我会得到类似的编译器错误。此代码不起作用;
#define NUMBER 5
float var = NUMBER * 0.2;
这很好;
float var = 5 * 0.2;
任何人都知道为什么会这样,或者Objective-C编译器如何以不同的方式处理#defines。顺便说一句,我正在使用 XCode,以防万一。
【问题讨论】:
标签: objective-c xcode c-preprocessor