C語言高階 ifndef的用法

2021-08-16 09:52:29 字數 596 閱讀 1810

1、ifndef是 if not define 的縮寫

2、用法

#ifndef x //先測試x是否被巨集定義過

#define x

程式段1

//如果x沒有被巨集定義過,定義x,並編譯程式段 1

#else

程式段2

//如果x已經定義過了則編譯程式段2的語句,「忽視」程式段 1。

#endif//終止if

3、作用

條件指示符#ifndef 的最主要目的是防止標頭檔案的重複包含和編譯。了解:條件編譯當然也可以用條件語句來實現。 但是用條件語句將會對整個源程式進行編譯,生成的目標**程式很長,而採用條件編譯,則根據條件只編譯其中的程式段1或程式段2,生成的目標程式較短。如果條件選擇的程式段很長,採用條件編譯的方法是十分必要的。

標頭檔案一般是宣告函式和全域性變數,如果乙個函式在原始檔重複宣告兩次沒什麼影響但是作為全域性變數只能宣告一次,不然會報錯,所以加入ifndefine是很有必要的。

所以一般ifndef x,這裡的一般是標頭檔案的大寫比如ifndef test.h

c語言中ifndef和endif的用法

ifndef x if not define x 的簡寫 define x 程式段1 如果x沒有被巨集定義過,定義x,並編譯程式段1 endif 程式段2 如果x已經定義過了則編譯程式段2的語句,忽視 程式段1。這是巨集定義的一種,它可以根據是否已經定義了乙個變數來進行分支選擇,一般用於除錯等等.實...

C語言for的高階用法

這個題比較經典,參c語言預設的非0即真,和if一樣,自己體會吧。這裡說明一下,for i 5 i for的第二個引數也是可以省略的,比如這個死迴圈 這裡總結以下吧,for的第乙個引數可以省略,第二個引數可以省略,第一和第二個引數不能同時省略,第三個不能省略。懂了吧 include include v...

C語言巨集的高階用法

轉至 關於 和 在c語言的巨集中,的功能是將其後面的巨集引數進行字串化操作 stringfication 簡單說就是在對它所引用的巨集變數通過替換後在其左右各加上乙個雙引號。比如下面 中的巨集 define warn if exp do while 0 那麼實際使用中會出現下面所示的替換過程 war...