- 宏定义不是C语句,也无须使用分号结束
- 宏定义并不是变量,它甚至不是常量
- 编译器对宏定义处理时“查找,替换”
执行宏定义之后,该宏的作用鱼尾从定义该宏开始,直到该源代码结束,如果希望提前结束宏定义,则可以使用如下语句:
#undef 宏名称
使用
#deinfe PI 3.1415
NSLog(@"%g",PI*r*r)
带参数的宏定义
#define 宏名称 (参数列表) 字符串
>建议将参数用括号括起来
#define ADD(r) r+r
#define ADD(r) (r)+(r)
#ifdef,#ifndef,#else,#endif 执行条件编译
可以根据机器环境镜像选择性编译,对于特定的设备,只编译该设备相关的代码,适用于版本判别
#ifdef 宏名称 //指定宏定义
//todo
#else //如果不存在定义的宏定义
//todo
#endif
#ifndef
如果没有定义指定的宏,则执行,同#ifdef
网友评论