面试题答案
一键面试sizeof(myStruct)
的值:- 在常见的32位和64位系统中,
sizeof(myStruct)
的值通常为8。
- 在常见的32位和64位系统中,
- 原因:
- 结构体存在内存对齐现象。在一般情况下(假设默认对齐方式):
int
类型通常占4个字节。char
类型占1个字节。short
类型通常占2个字节。- 对于结构体
myStruct
,a
占4个字节。b
占1个字节,但由于内存对齐,b
后面会填充3个字节,以满足c
的对齐要求(short
通常要求2字节对齐)。c
占2个字节。 - 所以
sizeof(myStruct)
为4 + 1 + 3+ 2 = 8
字节。
- 结构体存在内存对齐现象。在一般情况下(假设默认对齐方式):