宏定义
C语言中的宏(函数“缺陷”的补充)
- 宏是C语言中代码复用的补充
- 宏语法
C #define MACRO(param) code_segment
- 宏使用
C MACRP(param)
宏与函数的不同
- 宏不是函数,使用宏没有函数的调用的过程
- 函数调用先传递参数值,然后跳转执行函数体,最后返回
- 使用宏只是单纯“复制粘贴代码”,然后替换参数
- 同一个函数,无论多少次调用,都执行相同的函数体代码
- 同一宏,每次使用都会“复制粘贴”相同的代码
编译器组成
- 预处理模块:处理所有宏以及#开头的语句
- 编译模块:将C语言翻译成二进制程序
- 链接模块:将二进制程序组合成可执行程序
宏常量
#define NAME value
- 预处理模块将代码中出现的NAME标识符替换为value
- 宏常量在本质上与字面量相同(真正意义的常量)