ifdef 如何實現「與或」

2021-09-11 10:45:24 字數 576 閱讀 7795

用巨集定義包起來的**類似如下:

#ifdef a

//...

#endif

// a

現在要加入乙個巨集定義 b,實現類似這樣的條件判斷(顯然實際上這樣是不行的):
#ifdef a && ifdef b
其實應該這樣:
#if (defined a) && (defined b)

//...

#endif

「或」的形式是:
#if (!defined a) || (!defined b)

//...

#endif

這就修正了之前一直以為的「既生 #ifdef,何生 #if defined」的思維,其實還是有差別的。

而且,多個 #if 的條件可以外面加括號表示。例如

#if ((defined _unicode) && (!defined sa_unicode))

#define sa_unicode

#endif

**

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 ...

if defined 與 ifdef的區別

在linux中,常常使用巨集編譯的方法來進行條件編譯,通過巨集的定義與否來選擇執行對應的 一般而言,使用的比較頻繁的兩種方法是 1 if defined endif 2 ifdef endif 這兩個都可以通過巨集開關來控制程式的執行與否,但第一種更加靈活一些,其可以進行多個條件的判斷。如下 inc...