预处理在编译前对源代码进行宏展开、文件包含与条件编译等处理。
#define PI 3.14159 #define SQR(x) ((x)*(x)) // 注意副作用
#if defined(DEBUG) #define LOG(...) fprintf(stderr, __VA_ARGS__) #else #define LOG(...) #endif
#include <stdio.h> #include "mylib.h"
#x
x##y
__VA_ARGS__
__FILE__
__LINE__
__func__
__DATE__
__TIME__
预处理器强大但易出错,应控制宏复杂度,优先使用函数与内联函数实现逻辑。