編譯宏

请明月發表於2024-10-23

C#編譯宏

C#的預處理機制
預處理過程掃描原始碼,對其進行初步的轉換,產生新的原始碼提供給編譯器。可見預處理過程先於編譯器對原始碼進行處理。

預處理指令是以#號開頭的程式碼行。#號必須是該行除了任何空白字元外的第一個字元。#後是指令關鍵字,在關鍵字和#號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對原始碼做某些轉換。下面是部分預處理指令:

前處理器指令描述
#define它用於定義一系列成為符號的字元。
#undef它用於取消定義符號。
#if它用於測試符號是否為真。
#else它用於建立複合條件指令,與 #if 一起使用。
#elif它用於建立複合條件指令。
#endif指定一個條件指令的結束。
#line它可以讓您修改編譯器的行數以及(可選地)輸出錯誤和警告的檔名。
#error它允許從程式碼的指定位置生成一個錯誤。
#warning它允許從程式碼的指定位置生成一級警告。
#region它可以讓您在使用 Visual Studio Code Editor 的大綱特性時,指定一個可展開或摺疊的程式碼塊。
#endregion它標識著 #region 塊的結束。

示例

#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();
      }
   }
   
   //結果:PI is defined
}

相關文章