跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3:C++ 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
支持以下属性:为了实现兼容,编译器会实现由 __attribute__ (( keyword)) 或 [[keyword]] 调用的以下属性。还接受在双下划线内拼写的属性关键字 __keyword__。
大致等效于 #pragma align。生成警告,且在用于可变长度数组时会被忽略。
等效于 #pragma inline 和 -xinline
等效于 #pragma no_side_effect
等效于 #pragma init
等效于 #pragma fini
等效于 #pragma returns_new_memory
(无等效子句)
等效于 #pragma no_inline 和 -xinline
等效于 #pragma does_not_return
等效于 #pragma does_not_write_global_data
等效于 #pragma pack()。请参见以下详细信息。
等效于 #pragma unknown_control_flow
接受它是为了与 g++ 兼容,但不起任何作用。g++ 文档建议不要使用该属性。
指示变量或类型名称(使用 typedef 创建)表示一个向量。
提供链接程序作用域。(请参见A.2.130 -xldscope={v})语法为:__attribute__((visibility(“visibility-type ”))),其中 visibility-type 是以下选项之一:
与 __global 链接程序作用域相同
与 __hidden 链接程序作用域相同
与 __symbolic 链接程序作用域相同
等效于 #pragma weak
此属性附加于 struct 或 union 类型定义中,它指定结构或联合的每个成员(除了零宽度位字段)的放置,以最大限度地减小所需内存。附加于 enum 定义时,__packed__ 指示应使用最小的整数类型。
为 struct 和 union 类型指定此属性等效于对每个结构或联合成员指定 packed 属性。
在以下示例中,struct my_packed_struct 的成员紧紧打包在一起,但其成员的内部布局并不打包。为此,还需要打包 struct my_unpacked_struct。
struct my_unpacked_struct { char c; int i; ; struct __attribute__ ((__packed__)) my_packed_struct { char c; int i; struct my_unpacked_struct s; };
只能对 enum、struct 或 union 的定义指定此属性,不能对未定义枚举类型、结构或联合的 typedef 指定此属性。