条件编译:根据条件决定让代码是否参与最终的编译
版本控制
#if
#elif
#else
#endif
头文件卫士:防止头文件重复包含
#ifndef 宏名(头文件名全大写, _替代.)
#define 宏名(头文件名全大写, _替代.)
#endif// 宏名(头文件名全大写, _替代.)
判断、调试代码:
#ifdef 宏名(DEBUG)
#else
#endif
注意:可以通过编译参数-D宏名 定义宏
封装调试信息宏函数
#ifdef DEBUG
#define debug(...) printf(__VA_ARGS);
#else
#define debug(...)
#endif
封装提示错误信息宏函数
#define error(...) printf("%s %s %s %d %s %s",__FILE__,__func__,__VA_ARGS__,__LINE__,__DATE__,__TIME__);