ifdef是不是不能和elif連用

時間 2021-08-13 14:15:05

1樓:娛樂小八卦啊

#ifdef和#elif是可以連用的。#ifdef和#elif連用,語法和if...else if語句一樣。

條件編譯區域以 #if、#ifdef 或 #ifndef 等命令作為開頭,以 #endif 命令結尾。條件編譯區域可以有任意數量的 #elif 命令,但最多一個 #else 命令。

#if defined的使用

#if defined (巨集)**.#endif

這個#if後面接的是一個巨集,意思是前面的巨集定義裡面有沒有定義這個巨集,如果定義了,編譯器就會編譯中間的**,如果沒有定義,那就不會編譯,不管這個巨集定義的是什麼東西,對不對等。

#ifdef的使用

ifdef的使用和#if defined()的用法是一樣的。

ifndef又和#if !defined()的用法一樣(取反的意思)。

擴充套件資料

#if 和 #elif 命令

作為 #if 或 #elif 命令條件的表示式,必須是整數常量前處理器表示式。這與普通的整數常量表示式不同,主要區別在於:

(1) 不能在 #if 或 #elif 表示式中使用型別轉換運算子。

(2) 可以使用預處理運算子 defined。

(3) 在前處理器所有巨集,並且計算完所有 defined 表示式之後,會使用字元 o 替換掉表示式中所有其他識別符號或關鍵字。

(4) 表示式中所有帶符號值都具有 intmax_t 型別,並且所有無符號值都具有 uintmax_t 型別。字元常量也會受該規則的影響。intmax_t 和 uintmax_t 定義在標頭檔案 stdint.

h 中。

(5) 前處理器會把字元常量和字串字面量中的字元與轉義序列轉換成執行字符集中對應的字元。然而,字元常量在前處理器表示式和在後期編譯階段是否具有相同的值,取決於實現版本。

2樓:風若遠去何人留

可以的。

#ifdef和#elif都是c/c++條件編譯的識別符號。二者可以連用。

如以下**:

#ifdef test0

int a = 1;

#elif test1

int a=2;

#else

int a=3;

#endif

這段**在c/c++中是合法的。根據巨集定義情況,會有如下幾種可能:

1 test0被定義,那麼,全域性變數a會被初始化為1;同時條件編譯其它部分**將被忽略。

2 如果test0沒有被定義,會判斷test1的值。如果test1被定義,且值非0,那麼a會被初始化為2。

3 如果以上均未滿足,會編譯#else部分,a被初始化為3。

3樓:匿名使用者

#ifdef和#elif可以連用,語法和if...else if語句一樣

defined的優點是在可用在處理判斷多個條件是否成立時,例如:

#if defined(__unix__) && defined(__gnuc__)

.....

#endif

如果上例用#ifdef完成,就要進行巢狀,顯然可讀性不如這樣做。

4樓:匿名使用者

關於defined,那位朋友說了....

---------------

能.#ifdef _debug

#define _ok

#elif

#define _ng

#endif

喜歡人是不是不能太在乎她?是不是不能表現的太明顯

笑談古和今 是的。我的觀點是,愛要放在心裡,不能完全掛在臉上。戀愛是件很奇妙的事情,當你完全放棄了自尊,卑微到了沒有一點自我的時候,你的言行舉止對方會看的一清二楚,從而極大地使對方自我膨脹,覺得自己高貴無比,貌似天仙,身價倍增,從而徹底的看輕你。這一點,很像家長與孩子的關係。過於寵愛溺愛的孩子,根本...

女人是不是不能寵太狠,女人是不是不能太寵了

是的 寵的太過分會另女孩覺得一切 都不在乎,因為有你在,想要什麼就給什麼。就不會體會到生活,不知生活中的樂趣。有時一件事需要的是兩個人的意見。不能她的所有問題都讓你幫她解決。寵的太壞就很嬌氣,導致最後你自己都受不了對方的脾氣。受不了一點打擊,稍微吵架就說分手,我想要是這樣的話離著分手真的不遠了,該寵...

我是不是不能吃苦的人,我是不是乙個不能吃苦的人。。

暈,不是不能吃苦,只是你不適應吧了,你的想法很現實這也是自己一輩子幸福的事,不是不讓你選擇獨立,而是你現在家裡還有條件養你,你何不讓加深自己的修養呢?女的學會修養,學會照顧自己這是一件很了不起的事。我就沒你這麼好雖然可以獨立但我好累啊,很辛苦,真的想學東西,好好想想吧。如果你想獨立當然還是要離開家。...