條件編譯屬於編譯預處理的範疇,它能讓我們通過條件編譯的機制,將部分**包括進來或者排除出去,其作用與if-else類似.
條件編譯指令有以下四種
? #if
? #elif
? #else
? #endif
條件編譯指令有以下四種
#if#elif
#else
#endif
下面我們通一些例子來說明它們的用法
#definedebug
class
class1
#endif}
執行時由於第一行已經使用#define 指令定義了符號debug, #if 的條件滿足,所以這段**等同於
class再比如:class1
}
#define其編譯效果等同於: classc}a#define
b#undef
cclass
d#elif
a && b
void
i() {}
#else
void
g() {}
#endif
}
#if 指令可以巢狀使用, 例如:
#define
debug
//debugging on
#undeftrace
//tracing off
class
purchasetransaction}
預編譯和條件編譯指令還可以幫助我們在程式執行過程中發出編譯的錯誤或警告,相應的指令是#warning 和#error,下面的程式展示了它們的用法:
#define
debug
#definerelease
#define
demo version
#ifdemo version && !debug
#warning
you are building a demo version
#endif
#ifdebug && demo version
#error
you cannot build a debug demo version
#endif
using
system;
class
demo}
C 中的 define條件編譯
c define條件編譯 c 的預處理器指令從來不會轉化為可執行 的命令,但是會影響編譯過程的各個方面,常用的預處理器指令有 define undef if,elif,else和 endif等等,下面介紹c 中使用 define進行條件編譯的例項。c 中條件編譯指令用於按條件包含或排除原始檔中的某些...
C 中的條件編譯語句
參考部落格 以下內容就是根據大神的部落格進行改編過來的 條件編譯的三種形式 一 第一種形式 1 ifdef 識別符號 程式片段1 else 程式片段2 endif 含義 如果標誌符被 define命令定義過,那麼久對程式片段1進行編譯執行 否則就對程式片段2進行編譯執行,我們在一般使用的時候就直接將...
C 的條件編譯
一般情況下面c 的.h檔案和.cpp檔案裡面的每一行 都是要經過編譯的,但是通過條件編譯的方法可以讓某些語句不編譯,條件編譯常見的語句形式是 ifdef 標示符 段1 else 段2 endif 的意義也很好懂,就是如果標示符已經被定義了就執行 段1,否則執行 段2 條件編譯也是c或者c 裡面乙個實...