條件編譯,有三種格式
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,也能有相同效果。