C 中的條件編譯

2021-09-03 10:57:26 字數 1275 閱讀 9598

條件編譯屬於編譯預處理的範疇,它能讓我們通過條件編譯的機制,將部分**包括進來或者排除出去,其作用與if-else類似.

條件編譯指令有以下四種

? #if

? #elif

? #else

? #endif

條件編譯指令有以下四種

#if#elif

#else

#endif

下面我們通一些例子來說明它們的用法

#define

debug

class

class1

#endif}

執行時由於第一行已經使用#define 指令定義了符號debug, #if 的條件滿足,所以這段**等同於

class

class1

}

再比如:  

#define

a#define

b#undef

cclass

d#elif

a && b

void

i() {}

#else

void

g() {}

#endif

}

其編譯效果等同於:

classc}

#if 指令可以巢狀使用, 例如:

#define

debug

//debugging on

#undef

trace

//tracing off

class

purchasetransaction}

預編譯和條件編譯指令還可以幫助我們在程式執行過程中發出編譯的錯誤或警告,相應的指令是#warning 和#error,下面的程式展示了它們的用法:

#define

debug

#define

release

#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 裡面乙個實...