我正在阅读 GNU/GCC 的文档,然后我停在了 的描述处__attribute__ ((packed))
。它说:
已打包
packed 属性指定变量或结构字段应具有最小可能的对齐方式 - 每个变量一个字节,每个字段一位,除非您使用 aligned 属性指定更大的值。
这是一个结构体,其中字段 x 被打包,因此它紧跟在 a 之后:
struct foo { char a; int x[2] __attribute__ ((packed)); };
我想知道这个属性究竟如何工作,以及此代码是否:
struct bar
{
char a:1 __attribute__ ((packed));
};
将创建 1 位结构而不是 1 字节。