C 预处理器(Preprocessor)
预处理在编译前对源代码进行宏展开、文件包含与条件编译等处理。
1. 宏定义
c
#define PI 3.14159
#define SQR(x) ((x)*(x)) // 注意副作用2. 条件编译
c
#if defined(DEBUG)
#define LOG(...) fprintf(stderr, __VA_ARGS__)
#else
#define LOG(...)
#endif3. 文件包含
c
#include <stdio.h>
#include "mylib.h"4. 宏技巧
- 字符串化
#x - 连接
x##y - 可变参数宏
__VA_ARGS__
5. 预定义宏
__FILE__,__LINE__,__func__,__DATE__,__TIME__
6. 小结
预处理器强大但易出错,应控制宏复杂度,优先使用函数与内联函数实现逻辑。