引導語:預處理(pre-treatment),是指在進行最後加工完善以前進行的準備過程,具體應用在不同的行業或領域,會有不同的解釋,以下是小編整理的預處理指令#if的使用,歡迎參考閱讀!
#if 使您可以開始條件指令,測試一個或多個符號以檢視它們是否計算為 true。如果它們的計算結果確實為 true,則編譯器將計算位於 #if 與最近的 #endif 指令之間的'所有程式碼。
例如
#define DEBUG
// ...
#if DEBUG
eLine("Debug version");
#endif
可以使用運算子 ==(相等)、!=(不相等)、&&(與)及 ||(或)來計算多個符號。還可以用括號將符號和運算子分組。
備註
使用 #if 以及 #else、#elif、#endif、#define 和 #undef 指令,可以包括或排除基於由一個或多個符號組成的條件的程式碼。這在編譯除錯版本的程式碼或編譯特定配置時最為有用。
以 #if 指令開始的條件指令必須用 #endif 指令顯式終止。
#define 使您可以定義一個符號,通過將該符號用作傳遞給 #if 指令的表示式,使該表示式計算為 true。
也可以用 /define 編譯器選項來定義符號。可以用 #undef 來取消定義符號。
用 /define 或 #define 定義的符號與具有同一名稱的變數不衝突。即,不應將變數名傳遞到前處理器指令,並且只能用前處理器指令計算符號。
用 #define 建立的符號的範圍是在其中定義該符號的檔案。
示例
// preprocessor_
#define DEBUG#define VC_V7
using System;
public class MyClass
{
static void Main()
{
#if (DEBUG && !VC_V7)
eLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
eLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
eLine("DEBUG and VC_V7 are defined");
#else
eLine("DEBUG and VC_V7 are not defined");
#endif
}
}
DEBUG and VC_V7 are defined