程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 語言標准--2.5 預處理指令

C# 語言標准--2.5 預處理指令

編輯:C#入門知識

預處理指令提供按條件跳過源文件中的節、報告錯誤和警告條件,以及描繪源代碼的不同區域的能力。使用術語“預處理指令”只是為了與 C 和 C++ 編程語言保持一致。在 C# 中沒有單獨的預處理步驟;預處理指令按詞法分析階段的一部分處理。

pp-directive:(pp 指令:)
pp-declaration(pp 聲明)
pp-conditional(pp 條件)
pp-line(pp 行)
pp-diagnostic(pp 診斷)
pp-region(pp 區域)

下面是可用的預處理指令:

  • #define#undef,分別用於定義和取消定義條件編譯符號(第 2.5.3 節)。
  • #if#elif#else#endif,用於按條件跳過源代碼中的節(第 2.5.4 節)。
  • #line,用於控制行號(在發布錯誤和警告信息時使用)(第 2.5.7 節)。
  • #error#warning,分別用於發出錯誤和警告(第 2.5.5 節)。
  • #region#endregion,用於顯式標記源代碼中的節(第 2.5.6 節)。

預處理指令總是占用源代碼中的單獨一行,並且總是以 # 字符和預處理指令名稱開頭。# 字符的前面以及 # 字符與指令名稱之間可以出現空白符。

包含 #define#undef#if#elif#else#endif#line 指令的源代碼行可以用單行注釋結束。在包含預處理指令的源行上不允許使用帶分隔符的注釋(/* */ 樣式的注釋)。

預處理指令既不是標記,也不是 C# 句法文法的組成部分。但是,可以用預處理指令包含或排除標記序列,並且可以以這種方式影響 C# 程序的含義。例如,編譯後,程序:

#define A



#undef B



class C



{



#if A



   void F() {}



#else



   void G() {}



#endif



#if B



   void H() {}



#else



   void I() {}



#endif



}

產生與下面的程序完全相同的標記序列:

class C



{



   void F() {}



   void I() {}



}

因此,盡管上述兩個程序在詞法分析中完全不同,但它們在句法分析中是相同的。



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved