面试题答案
一键面试- 计算
sizeof(S)
的值及原因sizeof(S)
的值:假设int
占4字节,char
占1字节,double
占8字节,并且结构体存在内存对齐。结构体S
的成员按顺序排列,int a
占4字节,char b
占1字节,为了满足double c
的8字节对齐要求,char b
后面需要填充3字节,double c
占8字节。所以sizeof(S) = 4 + 1 + 3 + 8 = 16
字节。
- 计算
sizeof(U)
的值及原因sizeof(U)
的值:联合体U
中所有成员共享同一块内存空间,其大小取决于占用内存最大的成员。在union U
中,double c
占用8字节,所以sizeof(U) = 8
字节。