考虑 C11 中的以下类型,其中 MyType1 和 MyType2 是先前声明的类型:
typedef struct {
int tag;
union {
MyType1 type1;
MyType2 type2;
}
} MyStruct;
我想分配足够的内存malloc
来保存tag
属性和type1
. 这可以通过便携式方式完成吗?我想,sizeof(tag) + sizeof(type1)
由于对齐问题,可能无法正常工作。
我可以以可移植的方式从结构的开头计算 type1 的偏移量吗?