示例:
typedef struct _A
{
char a;
int b;
float c;
double d;
int *pa;
char *pc;
short e;
}A;
第一步,计算出结构体所有类型的所占大小。
typedef struct _A
{
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
short e;//2
}A;
第二步,选出最大值(上例中为8),作为对齐位
第三步,按照顺序,依次模拟内存堆放
char a;//1
■□□□□□□□
char a;//1
int b;//4
■■■■■□□□
char a;//1
int b;//4
float c;//4
■■■■■□□□
■■■■□□□□
char a;//1
int b;//4
float c;//4
double d;//8
■■■■■□□□
■■■■□□□□ ■■■■■■■■
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
■■■■■□□□
■■■■□□□□ ■■■■■■■■
■■■■□□□□
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
■■■■■□□□
■■■■□□□□ ■■■■■■■■
■■■■■■■■
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
short e;//2
■■■■■□□□
■■■■□□□□ ■■■■■■■■
■■■■■■■■ ■■□□□□□□
综上,一共占用40字节。