面试题答案
一键面试sizeof(MyStruct)
的值:sizeof(MyStruct)
的值通常为8。
- 原因:
int
类型一般占用4个字节(在常见的32位和64位系统中)。char
类型占用1个字节。short
类型一般占用2个字节。- 但是,由于结构体存在内存对齐机制,以提高内存访问效率。结构体的大小要满足其最大成员类型大小的整数倍。这里
int
类型大小为4字节,是最大的成员类型大小。所以结构体总大小需要是4的整数倍。int a
占4字节,char b
占1字节,short c
占2字节,4 + 1+ 2 = 7
字节,为了满足4的整数倍,需要填充1字节,所以最终sizeof(MyStruct)
为8字节。