内存对齐
例:
1.牺牲一点空间,带来更高的效率
101,102,103空掉不用
(1)struct A
{
int a; //4
float b; //4
};//8
(2)struct C
{
char a;//1+1
short b;//2
int c;//4
};//8
2.单个最大类型能被总字节数整除(单个最大类型为所有成员中最大的单个类型)
(1)struct D
{
char a;//1+3
int b;//4
short c;//2
};//10+2 //该结构体中单个最大类型为4,总字节数10不能整除4,所以实际的总字节数要在10的基础上加2,即12
(2)struct E
{
char a;//1+3
float b;//4
int c;//4+4 //4不能整除下面的8,所以要再加4
double d;//8
};//24
(3)struct F
{
int a;//4
char b;//1+3
};//8
(4)struct H
{
char a;//1+3
int b;//4
double c;//8
int *d;//4
};//20+4
4.struct II
{
int a;
char b;
}; //8
struct I
{
float x;//4
struct II y;//8 结构体II的单个最大类型为(int) 4
};//12