• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C# 語言規范--2.5 預處理指令

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    C# 語言規范--2.5 預處理指令: 預處理指令提供按條件跳過源文件中的節、報告錯誤和警告條件,以及描繪源代碼的不同區域的能力。使用術語“預處理指令”只是為了與 C 和 C++ 編程語言保持一致。在 C# 中沒有單獨的預處理步驟;預處理指令按詞法分析階段的一
    C# 語言規范--2.5 預處理指令:

    預處理指令提供按條件跳過源文件中的節、報告錯誤和警告條件,以及描繪源代碼的不同區域的能力。使用術語“預處理指令”只是為了與 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 Bclass C{#if A   void F() {}#else   void G() {}#endif#if B   void H() {}#else   void I() {}#endif}

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

    class C{   void F() {}   void I() {}}

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



    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>