什么是预处理

预处理一般是指在程序源代码被转换为二进制代码之前,由预处理器对程序源代码文本进行处理,处理后的结果再由编译器进一步编译。

预处理功能主要包括宏定义,文件包含,条件编译三部分

宏定义

简单宏: #define 标识符 字符序列

#define FALSE 0
#define NAME "LUODAOYI"
#define __IN
#define __OUT
//极端例子
#define NAME "LUODAOYI"
#define A int method() {
#define B char buffer[0x10];
#define C strcpy(buffer,NAME);
#define D return 0;}
#define E method();
//使用
A
B
C
D
int main()
{
    E
    return 0;
}

带参数的宏 #define 标识符(参数表) 字符序列

#define MAX(A,B)((A)>(B)?(A):(B))
int method()
{
    int x = 1;
    int y = 2;
    int z = MAX(x,y);
    return 0;
}
// 多行定义 // "\" 后不可有空格