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