面试题答案
一键面试-
计算过程:
- 首先是
char a
,它占1字节。由于char
是1字节对齐,所以a
的偏移量为0,占用1字节空间。 - 接着是
int b
,int
是4字节对齐。此时偏移量为1,不是4的倍数,需要填充3字节,使偏移量达到4(满足4字节对齐),int b
占用4字节,此时偏移量变为4 + 4 = 8。 - 然后是
short c
,short
是2字节对齐。此时偏移量8是2的倍数,所以short c
直接占用2字节,偏移量变为8 + 2 = 10。 - 结构体总大小需要满足其最大对齐数(这里最大对齐数是
int
的4字节对齐),10不是4的倍数,需要填充2字节,所以结构体myStruct
的大小为10 + 2 = 12字节。
- 首先是
-
结论:
myStruct
结构体的大小为12字节。