C if, else和 endif預處理指令

2021-06-06 02:50:52 字數 961 閱讀 5792

#if使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為true。如果它們的計算結果確實為true,則編譯器將計算位於#if與最近的 #endif 指令之間的所有**。例如,

1

#ifdebug

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)。

1

//preprocessor_if.cs

2#define

debug

3#define

vc_v7

4using

system;

5public

class

myclass 619

}

輸出結果:

debug and vc_v7 are defined

C if, else和 endif預處理指令

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

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之間,表示要從樣本集拆分...