内存对齐
结构体成员存放的地址要能整除该成员本身的大小
1.前面所有成员的大小相加应该是当前成员大小的倍数
2.整个结构体的大小应该能是该结构体中单个最大成员大小的倍数
struct A
{
char a;//1+3
int b;//4
};//8
struct B
{
char a;//1+1
short b;//2
int c;//4
};//8
struct C
{
int a;//4
char b;//1+1
short c;//2
};//8
struct D
{
char a;//1+3
int b;//4
short c;//2
};//10+2
struct E
{
int a;//4+4
double b;//8
float *c;//4
};//20+4
struct H
{
char a;//1+3
struct HH
{
int b;//4
long c;//4
}d;//8
};//12
struct I
{
char a;//1
struct II
{
int b;
long c;
};//没有定义变量
};//1
struct J
{
char a;//1+3
struct
{
int b;//4
long c;//4
};//8 //定义了一个没有名字的变量
};//12
struct K
{
char a;//1+1
short b[4];//8
int c;//4
};//14+2