编译预处理
对源程序编译之前做一些处理,生成扩展C源程序
宏定义
#define
文件包含
#include
条件编译
#if – #else – #endif等
无参宏定义
例如 :#define PI 3.1415926
在编写源程序时,所有的3.1415926都可由PI代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用3.1415926表达式去置换所有的宏名PI,然后再进行编译。gcc -E test.c 来查看预处理替换后的代码。如要终止其作用域可使用**# undef**命令。宏名在源程序中若用引号括起来,则预处理程序不对其作宏代换。可用宏定义表示数据类型,使书写方便。例如: #define INTEGER int
带参宏定义
#define M(y) yy+3y
形式参数不分配内存单元,因此不必作类型定义。而宏调用中的实参有具体的值。要用它们去代换形参,因此必须作类型说明。