C if, else和 endif預處理指令

2021-08-15 18:15:28 字數 1127 閱讀 1757

#if

使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為 

true

。如果它們的計算結果確實為

true

,則編譯器將計算位於 

#if與最近的 

#endif

指令之間的所有**。例如,

1

#if debug

2string file = root + "

/conf_debug.xml

";

3#else

4string file = root + "

/conf.xml

";

5#endif

這段**會像往常那樣編譯,但

讀取debug配置檔案

包含在#if

子句內。這行**只有在前面的

#define

命令定義了符號

debug

後才執行。當編譯器遇到

#if語句後,將先檢查相關的符號是否存在,如果符號存在,就只編譯

#if塊中的**。否則,編譯器會忽略所有的**,直到遇到匹配的

#endif

指令為止。一般是在除錯時定義符號

debug

,把不同的除錯相關**放在

#if子

句中。在完成了除錯後,就把

#define

語句注釋掉,所有的除錯**會奇蹟般地消失,可執行檔案也會變小,終端使用者不會被這些除錯資訊弄糊塗

(顯然,要做更多的測試,確保**在沒有定義

debug

的情況下也能工作

)。這項技術在c和

c++程式設計中非常普通,稱為條件編譯

(conditional compilation)。

參考msdn例項:

1

//preprocessor_if.cs

2#define debug

3#define vc_v7

4using system;

5public

class myclass

6 19 }

輸出結果:

debug and vc_v7 are defined

C if, else和 endif預處理指令

if使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為true。如果它們的計算結果確實為true,則編譯器將計算位於 if與最近的 endif 指令之間的所有 例如,1 ifdebug 2string file root conf debug.xml 3 else 4string file...

C if, else和 endif預處理指令

if使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為true。如果它們的計算結果確實為true,則編譯器將計算位於 if與最近的 endif 指令之間的所有 例如,1 if debug 2 string file root conf debug.xml 3 else 4 string f...

ML Data Processing資料預處理

資料歸一化 引數 arrays list np.array matrices padas dataframes 需被分割的樣本集 options test size 在0.0和1.0之間,表示要從樣本集拆分到測試集的比例,預設為0.25 train size 在0.0和1.0之間,表示要從樣本集拆分...