基本使用
#define PI 3.14
define 函数
#define SQUARE(x) ( (x) * (x) )
此时, y = SQUARE(v + 1); 等价于 y = ( (v + 1) * (v + 1) );
注意括号问题
多个参数的宏方法
#define Array(FIRST, ...) [NSArray arrayWithObjects: FIRST, ##__VA_ARGS__, nil]
#算符以及 ##算符
#算符
可产生一个 C-语言 格式的字符串
#define Str(x) #x
#define Str(x) "aaa"#x
Str(1)表示字符串"aaa1"
##算符
可以用来连接两段字符串,也可用来生成符合的变量名
常用的宏
- 表示在模拟器中
#if TARGET_IPHONE_SIMULATOR
#endif
- 可以在项目中 Build Settings Preprocessor Macros 设置预编译宏,然后可以根据不同的 target 跑不同的代码了
#if defined(ABC) // 表示是否宏定义了 ABC,不管 ABC值是多少
#endif
// 或者
#if ABC // 表示宏定义了 ABC,并且 ABC 值不为 0
#endif