条件编译,有三种格式
1 #if 表达式
程序段1
#else
程序段2
#endif
很简单,表达式为真编译1,否则编译2。
2 #ifdef 标识符
程序段1
#else
程序段2
#endif
如果标识符已用#define定义过,则为真编译1,否则编译2
3 和2的基本一致就是把ifdef换成ifndef。用法是为假编译1,否则2
比如#include <stdio.h>
int main()
{
#ifdef _DEBUG
printf("hello world\n");
#else
printf("no debug");
#endif
return 0;
}
在linux用gcc编译是,如果使用gcc -D_DEBUG -o main main.c。则就是说明定义过_DEBUG,运行结果是hello world。注意是-D选项,-D后面紧跟着标识符名字
如果使用:gcc -o main mian.c,怎说明没有定义标识符,运行结果是no debug了。
当然,也可以直接再代码里显示写上一句:#define _DEBUG,也能有相同效果。