- 头文件包含 #include
- 注意 “” <> 区别
- <> 系统头文件 “” 自定义头文件
- 宏定义
- 不重视作用域
- 可以利用 #undef 卸载宏
- 宏常量 没有数据类型
- 宏函数 要注意表达式完整性
void test01()
{
#define MAX 1024
//#undef MAX
}
- 条件编译
- 测试存在 #ifdef
- 测试不存在 #ifndef
- 自定义条件测试 #if
//#define DEBUG
#ifdef DEBUG //如果是 DEBUG版本 走下面代码
void func()
{
printf("debug版本调用\n");
}
#else
#if 0 //自定义条件编译
void func()
{
printf("release1版本调用\n");
}
#else
void func()
{
printf("release2版本调用\n");
}
#endif
#endif
- 特殊宏
- 编译所在文件 __FILE__
- 编译所在行号 __LINE__
- 编译日期 __DATE__
- 编译时间 __TIME__
//4、特殊宏
void doWork(char * p)
{
if (p == NULL)
{
printf(" 文件 : %s 的 %d 行 出错了!\n", __FILE__, __LINE__);
printf("日期:%s\n", __DATE__);
printf("时间:%s\n", __TIME__);
return;
}
}
void test02()
{
doWork(NULL);
}