面试题答案
一键面试-
计算结构体大小:
- 在一般的32位系统中,
char
类型占1个字节,int
类型占4个字节,short
类型占2个字节。 - 结构体存在内存对齐问题。假设默认对齐数为4(32位系统常见默认对齐数)。
- 结构体成员
a
是char
类型,占1个字节,按照4字节对齐,a
后填充3个字节。 - 成员
b
是int
类型,占4个字节,正好对齐。 - 成员
c
是short
类型,占2个字节,按照4字节对齐,c
后填充2个字节。 - 所以结构体
Test
的大小为1 + 3 + 4 + 2 + 2 = 12
字节。
- 在一般的32位系统中,
-
总结:
- 该结构体
struct Test
的大小为12字节。计算过程是基于内存对齐原则,先考虑每个成员自身大小,再根据对齐数计算填充字节,最后累加得到结构体总大小。
- 该结构体