了解c语言的条件编译1
简言
条件编译,可以让我们在测试的时候提供了很多方便,当然也减少程序的体积.来个上上手
1. #if #else #endif
#define ISDEBUG 1
int main(int argc, char *argv[])
{
#if ISDEBUG == 1
printf("if debug version!\n");
#else
printf("if release version!\n");
#endif
return 0;
}
运行 输出if debug version! 看看生成预编译的文件.
int main(int argc, char *argv[])
{
printf("if debug version!\n");
return 0;
}
这就是为什么上面说,减少代码体积,在预编译的时候,不满足条件的代码已经给处理掉了.
2. #if #elif #else #endif 判断多种情况的时候使用
#define VAL 2
int main(int argc, char *argv[])
{
#if VAL == 1
printf("TEST=%d", TEST);
#elif VAL == 2
printf("TEST=%d", VAL);
#elif VAL == 3
printf("TEST=%d", TEST);
#else
printf("TEST=%d", TEST);
#endif
return 0;
}
3. #ifdef #endif 判断宏存在的时候
int main(int argc, char *argv[])
{
#ifdef VAL
printf("TEST is exists");
#endif
return 0;
}
4. #ifndef #endif 判断宏不存在,可用于判断是否引入头文件
test.h
#ifndef TEST
#define TEST
//注意:只声明变量,不初始化,不然如果有两个c文件引入test.h头文件,
//就会出现_num 已经在 xxx.obj 中定义
int num;
#endif
秋风
2016-08-13