我在一台32位机器上工作,所以我认为内存对齐应该是4字节.假设我有这个 struct :
typedef struct {
unsigned short v1;
unsigned short v2;
unsigned short v3;
} myStruct;
普通添加的大小是6字节,我想对齐的大小应该是8,但sizeof(myStruct)
返回6.
但是,如果我写道:
typedef struct {
unsigned short v1;
unsigned short v2;
unsigned short v3;
int i;
} myStruct;
普通添加的大小是10字节,对齐的大小应该是12字节,这次是sizeof(myStruct) == 12
字节.
有人能解释一下区别吗?