对齐方式是4或8字节
union:
32位机是以四个字节对齐如
union{long i;int k[5];char c;} 20个字节
64位机8字节或4字节对齐(出现long或double等8字节则8字节对齐)
union{long i;int k[5];char c;} 24个字节;union{int i;int k[5];char c;} 20个字节;union{int i;int k[5];long c;}24个字节;
struct:
32位机
typedef union{long i;int k[5];char c;}DATE(20); struct C{ int cat;DATE cow;double dog;};(32)
64位机
typedef union{long i;int k[5];char c;}DATE(24); struct C{ int cat;DATE cow;double dog;};(40)

本文详细解析了在32位与64位机器上,不同数据类型在结构体(struct)与联合体(union)中的内存对齐方式。通过对具体例子的分析,展示了如何计算不同类型组合下所需的内存大小。
2504

被折叠的 条评论
为什么被折叠?



