1,union共享内存单元所以按占用内存最大的那个成员变量分配内存,
class、struct要考虑对齐(即将内存小的那个成员补齐到和内存单元最大的那个)
占用内存计算方式要视情况而定
- C/C++ code
-
union u { char c; int i; } sizeof(u) = 4 struct s0 { int i; char c; } sizeof(s0) = 8; struct s1 { int i; char c1; char c2; } sizeof(s1) = 8 struct s2 { int i; char c1; char c2; char c3; char c4; char c5; } sizeof(s2) = 12 struct s3 { double d; char c; } sizeof(s3) = 16
2,对联合中一个的更新会影响到其他成员而结构数据成员拥有独立内存所以不会有影响