C語言巨集定義之條件編譯

2021-09-30 09:41:03 字數 718 閱讀 7006

4、條件編譯命令 

有幾個命令可對程式源**的各部分有選擇地進行編譯,該過程稱為條件編譯。商業軟體公司廣泛應用條件編譯來提供和維護某一程式的許多顧客版本。 

#if、#else,#elif及#endif 

#if的一般含義是如果#if後面的常量表示式為true,則編譯它與#endif之間的**,否則跳過這些**。命令#endif標識乙個#if塊的 

結束。 

#if constant-expression 

statement sequence 

#endif 

跟在#if後面的表示式在編譯時求值,因此它必須僅含常量及已定義過的識別符號,不可使用變數。表示式不許含有操作符sizeof(sizeof也是編譯 

時求值)。 

#else命令的功能有點象c語言中的else;#else建立另一選擇(在#if失敗的情況下)。 

注意,# else屬於# if塊。 

#elif命令意義與else if 相同,它形成乙個if else-if階梯狀語句,可進行多種編譯選擇。 

#elif 後跟乙個常量表示式。如果表示式為true,則編譯其後的**塊,不對其它#elif表示式進行測試。否則,順序測試下一塊。 

#if expression 

statement sequence 

#elif expression1 

statement sequence 

#endif 

c語言複習(二)巨集定義和條件編譯

巨集定義 define g 9.8 undefg 巨集定義的作用域 注意不同 define ab x x x 2 x 10 ab 1 2 1 2 1 2 2 1 2 10 15 ab 3 3 3 2 3 10 13 ab 3 10 3 3 2 3 10 10 103 define ab x x x ...

C語言基礎 C語言巨集定義 3 條件編譯

上一節我們講解了帶引數和不帶引數的巨集定義,這次我們來講解條件編譯,什麼是條件編譯呢?我們來看看吧 下面我們來看看例子 include int main else if a 5 else return 0 上面這種其實就是條件編譯,但這種條件編譯有乙個問題,在編譯的時候,編譯器不會選擇性編譯,而是全...

C語言之關鍵字 巨集定義 條件編譯

區域性變數 特點 注意 區域性變數沒有固定的初始化值,開發中千萬不能使用未初始化的區域性變數 儲存位置 區域性變數儲存在棧中,當作用域結束系統會自動釋放棧中的的區域性變數。特點 如果存在和全域性變數同名的區域性變數,那麼區域性變數會覆蓋全域性變數 注意 全域性變數如果沒有進行初始化,系統缺省會將全域...