关键是下面4个概念:
1.数据类型自身的对齐值:就是基本数据类型的自身对齐值。 (注意:结构体作为成员出现的话,其自身的对齐值参考3)
2.指定对齐值:#progma pack (value)时的指定对齐值value。
3.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。
4.数据成员、结构体和类的真实对齐值 = min (自身对齐值 , #progma pack指定值)
另有:linux的默认#progma pack值为4,windows可认为无默认值