古詩詞大全網 - 成語用法 - C語言中條件編譯和If語句之間的差別,各適用於什麽情況

C語言中條件編譯和If語句之間的差別,各適用於什麽情況

條件編譯是C語言中預處理部分的內容,它是編譯器編譯代碼時最先處理的部分,

條件編譯裏面有判斷語句,比如 #if 、#else 、#elif 及 #endif

它的意思是如果宏條件符合,編譯器就編譯這段代碼,否則,編譯器就忽略這段代碼而不編譯,如

#define A 0 //把A定義為0

#if (A > 1)

printf("A > 1"); //編譯器沒有編譯該語句,該語句不生成匯編代碼

#elif (A == 1)

printf("A == 1"); //編譯器沒有編譯該語句,該語句不生成匯編代碼

#else

printf("A < 1"); //編譯器編譯了這段代碼,且生成了匯編代碼,執行該語句

#endif

而 if 語句則不然,if 是 C 語言中的關鍵字,它根據表達式的計算結果來覺定執行那個語句,它裏面的每個分支都編譯了的, 如

#define A 0

if (A > 1)

printf("A > 1"); //編譯器編譯該語句,但因為A == 0 未執行

else if(A == 1)

printf("A == 1"); //編譯器編譯該語句,但因為A == 0 未執行

else

printf("A < 1"); //編譯器編譯該語句,因為A == 0 故執行

所以 簡單地講,條件編譯是根據 宏條件 選擇性地編譯語句,它是編譯器在編譯代碼時完成的;

條件語句是根據條件表達式選擇性地執行語句,它是在程序運行時進行的。