編譯語句
❶ C++ if()是不是條件編譯指令
if()屬於判斷語句,不是條件編譯指令。
與if類似的條件編譯指令為#if和#ifdef。
條件編譯指令屬於預編譯語句,即編譯器在執行編譯工作時,會第一步處理預編譯語句,之後再進行剩餘的編譯工作。
在C語言中,所有的預編譯語句都是以#開頭的,如#define, #undef,#if等等。
條件編譯指令包括以下幾項:
1 #if
當後續的參數為真時執行編譯。
2 #ifdef/#ifndef
#ifdef當後續的宏定義被定義時執行編譯。
#ifndef當後續的宏定義沒有被定義時執行編譯。
3 #elif
與C語言語句中的else if類似,與#if或#ifdef連用,當後續參數為真時執行編譯。
4 #endif
用於條件編譯結尾,表示條件編譯結束。
❷ C語言 #ifdef #endif 是什麼意思
#ifdef #endif是C語言的條件編譯。
一般情況下,源程序中所有的行都參加編譯。但有時希望對其中一部分內容只在滿足一定條件下才進行編譯,即對一部分內容指定編譯條件,這就是「條件編譯」(conditional compile)。
#ifdef的一般形式:
#ifdef宏名
//語句段
#endif
作用:如果在此之前已定義了這樣的宏名,則編譯語句段。
❸ #if與if什麼區別啊
區別1:
#if是條件編譯;if是條件語句。
區別2:
if是條件語句,#if是預處理指令,功能相同,執行的時期不同。
區別3:
if的作用是程序流控制,會直接編譯、執行。
#if是對編譯器的指令,其作用是告訴編譯器,有些語句行希望在條件滿足時才編譯。
區別4:
#if作用是:如果(MAX==10)||(MAX==20)成立,那麼編譯器就會把其中的#if 與 #endif之間的代碼編譯進去
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 故執行
所以 簡單地講,條件編譯是根據 宏條件 選擇性地編譯語句,它是編譯器在編譯代碼時完成的;
條件語句是根據條件表達式選擇性地執行語句,它是在程序運行時進行的。