ddb*_*bug 0 c gcc language-lawyer
从一开始我就相信 __attribute__((packed)) 可以放在结构体或 typedef 上,如下所示:
typedef struct __attribute__((packed)) {
uint8_t m1;
uint16_t m2;
uint8_t m3;
uint32_t m4;
uint8_t m5;
} junk;
Run Code Online (Sandbox Code Playgroud)
但后来有人指出,最近的 gcc 手册中没有记录这种明显的用法,因为已经有几个版本了。相反,它说(在v.12中):“[packed] 属性不适用于非成员对象。”
整个结构不是成员对象,对吗?
那么上面的例子合法吗,还是依赖于UB(稍后可以咬)?
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |