C if, else和 endif預處理指令

2021-09-06 14:06:42 字數 910 閱讀 7412

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

1 #if debug  

2 string file = root + "/conf_debug.xml";

3 #else

4 string 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

4 using system;

5 public 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 2string file root conf debug.xml 3 else 4string ...

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