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

編譯器指令

	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) { ... }
	}
	
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章