在linux中,常常使用巨集編譯的方法來進行條件編譯,通過巨集的定義與否來選擇執行對應的**。
一般而言,使用的比較頻繁的兩種方法是
(1)、#if defined (***)
#endif
(2)、#ifdef
#endif
這兩個都可以通過巨集開關來控制程式的執行與否,但第一種更加靈活一些,其可以進行多個條件的判斷。如下:
# include
#define aaa
#define bbb
#define ccc
int main()
程式的結果如下:
aaa is defined
bbb is define
aaa and bbb are defined
可知,如果條件比較複雜,#if defined 比#ifdef更適合(與之類似的是#if !defined)。
而#if一般要求引數為一定的數值,無法使用巨集來判定。
ifdef 如何實現「與或」
原本用巨集定義包起來的 類似如下 ifdef a endif a 現在要加入乙個巨集定義 b,實現類似這樣的條件判斷 顯然實際上這樣是不行的 ifdef a ifdef b 其實應該這樣 if defined a defined b endif 或 的形式是 if defined a defined...
ifdef 如何實現「與或」
原本用巨集定義包起來的 類似如下 cpp view plain copy print?ifdef a endif a 現在要加入乙個巨集定義 b,實現類似這樣的條件判斷 顯然實際上這樣是不行的 cpp view plain copy print?ifdef a ifdef b 其實應該這樣 cpp ...
ifdef 如何實現「與或」
用巨集定義包起來的 類似如下 ifdef a endif a現在要加入乙個巨集定義 b,實現類似這樣的條件判斷 顯然實際上這樣是不行的 ifdef a ifdef b其實應該這樣 if defined a defined b endif 或 的形式是 if defined a defined b e...