【发布时间】:2021-05-29 00:23:28
【问题描述】:
packed struct 中的 unpacked struct 会被 GCC 自动打包吗?
换句话说,__packed__ 属性会自动传播到嵌套结构吗?
也就是说:
struct unpackedStruct{
int16_t field1;
int32_t field2;
// etc...
}
struct packedStruct{
int16_t field1;
struct unpackedStruct struct1; // <-- Is this struct packed?
// etc...
} __attribute__((__packed__));
【问题讨论】:
-
最好不要 - 否则将该成员传递给任何其他期望普通
unpackedStruct的代码将惨遭失败。无论如何,你可以测试它。 -
@NateEldredge 另外,从一个人直接分配到另一个人是行不通的。
-
这应该很容易使用编译器进行检查。