一、什么是预处理指令
- 在把程序翻译成0和1二进制之前,做的操作
- 一般情况预处理指令都以#号开头
- 包括:宏定义、条件编译、文件包含
二、宏定义的格式
- 1.不带参数的宏定义
- #define 宏名 值
#define COUNT NSLOG
- 2.带参数的宏定义
- #define 宏名(参数1,参数2) 值
#define SUM(v1, v2) ((v1)+(v2))
- 命名规范:
- 1、宏名都大写, 多个单词之间用_隔开, 并且每个单词全部大写
- 2、有得公司又要求宏名以k开头, 多个单词之间用驼峰命名
- 注意:
- 1、一般情况下建议写带参数的宏的时候, 给每个参数加上一个()
- 2、一般情况下建议写带参数的宏的时候, 给结果也加上一个()
三、宏定义的作用
- 代码的执行过程
- 码 --> 预处理 -->汇编 -->二进制 -->可执行程序
- 会在程序翻译成0和1之前, 将所有宏名替换为 宏的值
四、宏定义的作用域
- 从定义的那一行开始, 一直到文件末尾
五、宏定义的使用场景
- 获取屏幕的宽度
- 获取手机系统版本号
- 做一个单例
- 等等...