D語言中的編譯器指令(Pragma)

2021-03-31 10:36:58 字數 996 閱讀 9377

pragma:pragma (標誌符 )pragma (標誌符,表示式列表)
pragma:pragma (identifier)pragma (identifier,expressionlist)
編譯器指令用來給編譯器傳遞如何使用產品提供商對d的特殊擴充套件的資訊。指令以『;』結尾,它們可以影響一條語句、一塊語句、乙個宣告或者一塊宣告。
pragma(ident);		// 單獨使用

pragma(ident) declaration; // 影響乙個宣告

pragma(ident): // 影響隨後的宣告

declaration;

declaration;

pragma(ident) // 影響一塊宣告

pragma(ident) statement; // 影響一條語句

pragma(ident) // 影響一塊語句

指令的型別由

標誌符 指明。

表示式列表 是由逗號分隔的

賦值表示式 列表。

賦值表示式 必須可以作為表示式解析,但它們的語義取決於具體編譯器指令的語義。所有的實現必須支援這些指令,不然就忽略它們:

msg在編譯時列印出訊息,

賦值表示式 必須是字串文字量:

pragma(msg, "***piling...");

特定於產品提供商的指令中的

標誌符 應該以產品提供商的商標名開頭,這同版本標誌符的方式類似:

pragma(digitalmars_funky_extension) 
即使已知某個編譯器指令是特定於產品提供商的,編譯器也必須產生「不可識別的

pragma 」錯誤。這意味著特定於產品提供商的編譯器指令必須被包在 version 語句中:

version (digitalmars)

}

D語言中的嵌入彙編 LDC編譯器

toc ldc編譯器可支援兩種書寫方式,一種是gcc格式的,另外一種需要呼叫內建的函式模板進行實現 無返回的定義 void asm char asmcode,char constraints,arguments.單返回定義 template asm t 多返回定義 struct asmtuple t...

D語言編譯器DMD開源了

自從1999年12月,walter設計開發d語言以來,d語言的編譯器dmd因為不開源,成了業界的詬病。walter曾經承諾,將開放源 偉大的walter bright在今天2009年3月5日下午18點40分 中國時間 釋放出了d1和d2的前端和後端的源 開源協議為gpl1.0或者artistic l...

lldb編譯器除錯指令

xcode斷點 控制台除錯指令 lldb編譯器除錯指令 p 列印基本資料型別值 列印物件持有的位址 po 列印基本資料型別值 列印物件的詳細資訊 call 呼叫一行oc 指令並實時執行生效 bt 回溯追蹤棧資訊 位址 breakpoint list 列印斷點元素列表 thread list 列印執行...