在x86系统下,sizeof如下结构体的值是多少?
1
2
3
4
5
|
struct
{
char
a[10];
int
b;
short
c[3];
}
|
- 20
- 22
- 24
- 26
偏移量必须为其类型的整数倍,结构体大小必须是所有成员大小的整数倍
char 偏移量0,地址0-9
int 偏移量10不是sizeof(int)的倍数,故而修正为12,地址12-15
short 偏移量16,地址16-21
结构题大小22不是1,2,4的公倍数,故而vc自动补充2个数为24