为便于兼容性,编译器实现以下属性 (__attribute__ ((keyword ))):
always_inline-等效于 #pragma inline 和 -xinline
noinline-等效于 #pragma no_inline 和 -xinline
pure-等效于 #pragma does_not_write_global_data
const-等效于 #pragma no_side_effect
malloc-等效于 #pragma returns_new_memory
aligned-大概等效于 #pragma align,但受结构和联合类型的限制。
constructor-等效于 #pragma init
destructor-等效于 #pragma fini
alias-为已声明的功能或变量名称创建一个别名
weak-等效于 #pragma weak
noreturn-等效于 #pragma does_not_return
packed-等效于 #pragma pack()
visibility-提供链接程序作用范围,如2.2 链接程序作用域说明符中所述。语法是:__attribute__((visibility("visibility_type"))),其中 visibility_type 是以下选项之一:
default-与 __global 连接程序作用范围相同
hidden-与 __hidden 连接程序作用范围相同
internal-与 __symbolic 连接程序作用范围相同