條件編譯初步

2021-09-25 05:49:27 字數 1012 閱讀 2477

一直以來不知道條件編譯有什麼卵用,也不會用條件編譯,最近看《演算法競賽入門經典》時,又接觸到了這個概念,便稍微學了一點,於是積累下來,記作一篇經驗。

首先是條件編譯的概念:

顧名思義,在某些條件下進行編譯,某些條件下不進行編譯。

接著,給出條件編譯的三種用法:

1.#if和#endif

一般形式為:

#if 常量表示式

程式段#endif

用法:當常量表示式的值為真時,編譯程式段,否則不編譯。

程式段不需要加{},因為#if #endif已經起到了{}的作用,且#if與#endif必須配對使用

2.帶#elif的條件編譯

一般形式為:

#if 常量表示式1

程式段1

#elif 常量表示式2

程式段2

#elif 常量表示式3

程式段3

#endif

用法:elif即else if ,模擬if、else if、else即可。

3.#ifdef的使用

一般形式為:

#ifdef 巨集名

程式段1

#else

程式段2

#endif

如果巨集名被定義,則編譯程式段1,否則編譯程式段2

以上為條件編譯的三種用法,除此以外還有#ifndef和#ifdef相似,只不過是巨集名沒有被定義時編譯程式段1

#include #define h 1

int main()

`

如**所示,h為1,因此輸入輸出將對檔案進行,執行**,可以看到成功在檔案中輸出了相應結果,說明相關**編譯了。

在演算法競賽中,如果題目不允許通過檔案i/o,那麼我們把h的巨集定義改為0即可,與輸入輸出重定向有關的**便不會執行了。

以上是我初步學習條件編譯的內容,作為個人學習總結,歡迎指教!

條件編譯 if

1 為什麼需要條件編譯 客戶的需求在不停地發生變化,一會兒需要這個功能,一會兒不需要這個功能。我們可以使用條件編譯來方便地裁剪功能。2 條件編譯語句 if 條件編譯語句 if的形式是 1 if expression 2.3 elif expression 4.5 elif expression 6....

if 條件編譯

1.格式 if constant expressionstatements elif constant expressionstatements else statements endif 其中 constant expression 常量表示式 字面值常量,或者乙個有 define定義的符號 由預...

條件編譯 if

1 為什麼需要條件編譯 客戶的需求在不停地發生變化,一會兒需要這個功能,一會兒不需要這個功能。我們可以使用條件編譯來方便地裁剪功能。2 條件編譯語句 if 條件編譯語句 if的形式是 1 if expression 2.3 elif expression 4.5 elif expression 6....