C語言中elif是什麼意思?具體怎麼用

時間 2021-09-07 13:12:08

1樓:機關快

#elif是預處理指令,跟#if等一起用,進行條件編譯,比較完整的格式應該是:

#if  條件  表示式;

#elif  條件  表示式;

#else  條件  表示式;

#endif;

條件和表示式語句間用空格分開

elif相當於else if,判斷中間可以弄n個elif

條件判斷完最後一定要加#endif哦!

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言制定了一套完整的美國國家標準語法,稱為ansi c,作為c語言最初的標準。目前2023年12月8日,國際標準化組織(iso)和國際電工委員會(iec)釋出的c11標準是c語言的第三個官方標準,也是c語言的最新標準,該標準更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。

2樓:匿名使用者

參考條件預處理的章節

#ifdef是不是不能和#elif連用?

3樓:娛樂小八卦啊

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

4樓:風若遠去何人留

可以的。

#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。

5樓:匿名使用者

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

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

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

.....

#endif

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

6樓:匿名使用者

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

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

能.#ifdef _debug

#define _ok

#elif

#define _ng

#endif

在C語言中是什麼意思,C語言中 c 是什麼意思?

勢如雲 這是c語言的邏輯運算子 異或 這個 講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!邏輯運算子把各個運算的變數 或常量 連線起來組成一個邏輯表示式。邏輯運算子有4個,它們分別是 邏輯非 邏輯或 邏輯與 異或 在位運算裡面還有 位與 位或 的運算。什麼是邏輯運算 邏輯運算用來判斷...

c語言中extern是什麼意思,在C語言中標頭檔案的extern是什麼意思呢?

extern 宣告的函式是在外部定義的函式例項,最常見的就是通過extern定義在win32 dll定義的非託管函式。 取經人取經 就是全域性變數的意思,在建立工程的情況下,其他檔案也可以呼叫這個變數。 陳振龍 用了extern,就表示這個變數是全域性的和動態的,不存在使用哪一個的問題.比如3號檔案...

C語言中array是什麼意思,c語言中的array 是什麼意思哦

1 陣列,顧名思義,是相同型別的陣列成的一個組,也就是說是把相同型別的一系列資料統一編制到某一個組別中。這樣就可以通過陣列名 索引號簡單快捷的操作大量資料。這就和全校學生一樣,把學生分成多個班級,每個學生都是班級中的一員,如果要找張三,如果沒有班級的話,就要在全校學生中一個一個尋找,一直到找到為止 ...