1、默认状态下
(1)分配内存的顺序是按照声明的顺序来执行的(而非初始化列表的顺序);
(2)每个变量相对于起始位置的偏移量需要时自己大小的整数倍,如果不是的话,就要填补内存,直至偏移量为整数倍为止;
(3)结构体或者类分配完了内存之后,需要将内存对齐到最大变量大小的整数倍;
(4)对于一个空类,其被继承的时候大小为0,但是不被继承的时候,其单独大小为1。
2、添加了#pragma pack(n)之后,规则会发生改变
(1)偏移量需要时n和变量自身大小中较小的整数倍
(2)整体的大小要是n和最大变量大小中较小的整数倍
(3)n需要时2^k(k从0到任意),如果为其他值就执行默认分配。