Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

4.11.2 __packed__ 属性详细信息


此属性附加于 structunion 类型定义中,它指定结构或联合的每个成员(除了零宽度位字段)的放置,以最大限度地减小所需内存。附加于 enum 定义时,__packed__ 指示应使用最小的整数类型。

structunion 类型指定此属性等效于对每个结构或联合成员指定 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;
};

只能对 enumstructunion 的定义指定此属性,不能对未定义枚举类型、结构或联合的 typedef 指定此属性。