我正在使用 32 位机器,所以我想内存对齐应该是 4 个字节。假设我有这个结构:
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
.
有人可以解释有什么区别吗?