條件編譯是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
#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
所以 簡單地講,條件編譯是根據 宏條件 選擇性地編譯語句,它是編譯器在編譯程式碼時完成的;
條件語句是根據條件表示式選擇性地執行語句,它是在程式執行時進行的。
條件編譯是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
#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
所以 簡單地講,條件編譯是根據 宏條件 選擇性地編譯語句,它是編譯器在編譯程式碼時完成的;
條件語句是根據條件表示式選擇性地執行語句,它是在程式執行時進行的。