结构体的大小
规则-------内存对齐 结构体成员存放的地址要能整除该成员本身的大小
1.前面所有成员大小的相加因该是当前成员大小的倍数
2.整个结构体的大小应该是应该是结构体中单个最大成员的倍数
struct C
{
int a; //4
char b; //1
short c; //2+1
};
//4+1+3=8
struct A
{
char a; //1
int b; //4+3
short c; //2+2
};
//1+7+4=12
struct B
{
short a; //2
char b; //1+1
int c; //4
};
//2+2+4=8
注意:不同的顺序排列结构体的大小是不同的
内存对齐图示
联合体(共同体) 各个成员具有排他性
union D
{
char a;//1
int b;//4
};
4