属性(attribute)是一种能让开发者用通用的语法给语言实体附加额外信息的机制(这样不用整一堆语法/关键字)。
这些附加的信息对语义影响很小,用来给编译器用,拿来优化编译输出、指定特定平台的行为之类的。
有些情况,需要的特性很简单,这时候直接用属性而不是加关键字更合适,当然在合适的时候还是会加关键字。
有些编译器早就有了自己的属性扩展,现在被 C 扶正了。
属性可以是编译器自定义的(在编译器厂商名字的属性空间里),还可以用 C 标准规定的属性。
// 标准属性
[[something]] void f([[something_else]] int i);
// 编译器自定义属性
[[gnu::something]] void g([[clang::something_else]] int i);
<< · Back Index ·>>