D语言中的编译器指令(Pragma)

王朝网络·other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

编译器指令Pragma:

pragma ( 标志符 )

pragma ( 标志符 , 表达式列表 )

Pragma:

pragma ( Identifier )

pragma ( Identifier , ExpressionList )

编译器指令用来给编译器传递如何使用产品提供商对D的特殊扩展的信息。指令以‘;’结尾,它们可以影响一条语句、一块语句、一个声明或者一块声明。pragma(ident);// 单独使用

pragma(ident) declaration; // 影响一个声明

pragma(ident):// 影响随后的声明

declaration;

declaration;

pragma(ident)// 影响一块声明

{declaration;

declaration;

}

pragma(ident) statement; // 影响一条语句

pragma(ident)// 影响一块语句

{statement;

statement;

}

指令的类型由 标志符 指明。 表达式列表 是由逗号分隔的 赋值表达式 列表。赋值表达式 必须可以作为表达式解析,但它们的语义取决于具体编译器指令的语义。

预定义 Pragma所有的实现必须支持这些指令,不然就忽略它们:

msg

在编译时打印出消息,赋值表达式 必须是字符串文字量: pragma(msg, "compiling...");

特定于产品提供商的 Pragma特定于产品提供商的指令中的 标志符 应该以产品提供商的商标名开头,这同版本标志符的方式类似:pragma(DigitalMars_funky_extension) { ... }

即使已知某个编译器指令是特定于产品提供商的,编译器也必须产生“不可识别的 Pragma ”错误。这意味着特定于产品提供商的编译器指令必须被包在 version 语句中: version (DigitalMars)

{

pragma(DigitalMars_funky_extension) { ... }

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有