編譯器指令
Pragma: pragma ( 標誌符 ) pragma ( 標誌符 , 表達式列表 )
Pragma: pragma ( Identifier ) pragma ( Identifier , ExpressionList )編譯器指令用來給編譯器傳遞如何使用產品提供商對D的特殊擴展的信息。指令以‘;’結尾,它們可以影響一條語句、一塊語句、一個聲明或者一塊聲明。
(ident); (ident) declaration; (ident): declaration; declaration; (ident) { declaration; declaration; } (ident) statement; (ident) { statement; statement; }指令的類型由 標誌符 指明。 表達式列表 是由逗號分隔的 賦值表達式 列表。賦值表達式 必須可以作爲表達式解析,但它們的語義取決於具體編譯器指令的語義。
預定義 Pragma
所有的實現必須支持這些指令,不然就忽略它們:- msg
- 在編譯時打印出消息,賦值表達式 必須是字符串文字量:
(msg, );
特定於產品提供商的 Pragma
特定於產品提供商的指令中的 標誌符 應該以產品提供商的商標名開頭,這同版本標誌符的方式類似:(DigitalMars_funky_extension) { ... }即使已知某個編譯器指令是特定於產品提供商的,編譯器也必須產生“不可識別的 Pragma ”錯誤。這意味着特定於產品提供商的編譯器指令必須被包在 version 語句中:
(DigitalMars) { (DigitalMars_funky_extension) { ... } }