W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
預處理指令是一種給編譯器的指令,用來在實際的編譯開始之前預處理一些信息。
所有的預處理指令都以 # 開始,并且在一行預處理指令中,只有空白字符可以出現(xiàn)在指令之前。預處理指令沒有聲明,所以他們不需要以分號(;)結(jié)尾。
C# 編譯器不具有獨立的預處理機制;然而,指令執(zhí)行的時候就像是只有這一條一樣。在 C# 中,預處理指令被用來幫助條件編譯。不像 C 或 C++ 的指令,他們不能創(chuàng)建宏。一個預處理指令必須是這一行代碼中的唯一的指令。
下面的表格中列出了 C# 中可用的預處理指令:
預處理指令 | 描述 |
---|---|
#define | 定義了一串字符,稱為符號。 |
#undef | 可以取消定義的符號。 |
#if | 測試一個或多個表達式的結(jié)果是否為真。 |
#else | 用于創(chuàng)建復合條件指令,和 #if 一起使用。 |
#elif | 用于創(chuàng)建復合條件指令。 |
#endif | 指出條件指令的結(jié)尾。 |
#line | 可以修改編譯器的行號,選擇性修改輸出錯誤和警告的文件名 |
#error | 從代碼的特定位置生成誤差 |
#warning | 從代碼的特定位置生成一級預警 |
#region | 當你使用 Visual Studio 代碼編譯器時,你可以展開或折疊一部分代碼塊 |
#engregion | 它標志著 #region 塊的結(jié)束 |
#define
預處理指令是用來創(chuàng)建符號常量的。
應(yīng)用 #define 可以定義一個符號,這個符號會作為一個表達式傳遞給 #if 指令,這個判斷會得到 ture 的 結(jié)果。語法如下:
#define symbol
下面的程序說明了這一點:
#define PI
using System;
namespace PreprocessorDAppl
{
class Program
{
static void Main(string[] args)
{
#if (PI)
Console.WriteLine("PI is defined");
#else
Console.WriteLine("PI is not defined");
#endif
Console.ReadKey();
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
PI is defined
你可以使用 #if 指令創(chuàng)建一個條件指令。條件指令可以用來判斷一個或多個符號是否為真。如果他們的結(jié)果為真,編譯器就會執(zhí)行 #if 和下一條指令間的所有代碼。
條件指令的語法如下:
#if symbol [operator symbol]...
當你想測試的符號是 “symbol”這個名字的時候。你也可以使用 ture 和 false 或者提前使用反運算符操作這個符號。
operator symbol(運算符符號)是一種用于符號求值的運算符。運算符可以是下列之一:
你也可以通過括號使用組符號和組運算符。條件指令用于編譯代碼生成 debug 或者是編譯特定配置時。一個條件指令以 #if 開頭并且必須明確的以 #endif 指令結(jié)束。
下面的程序示范了條件指令的使用方法:
#define DEBUG
#define VC_V10
using System;
public class TestClass
{
public static void Main()
{
#if (DEBUG && !VC_V10)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V10)
Console.WriteLine("VC_V10 is defined");
#elif (DEBUG && VC_V10)
Console.WriteLine("DEBUG and VC_V10 are defined");
#else
Console.WriteLine("DEBUG and VC_V10 are not defined");
#endif
Console.ReadKey();
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
DEBUG and VC_V10 are defined
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: