共用体union以其中最大的字节长度为准对齐,字节大小一定是最大字节长度的倍数,共用体内成员公用一片内存空间
union A{ int a[5]; char b; double c; }
结果是24
int的字节长度为4,5个int就是20,double的长度是8,但20不是8的倍数,所以补上4,该共用体的字节长度为24.
----------------------------------------------------------------------------------------------
结构体字节对齐也是以其中最大的字节长度为准对齐
struct{ char name[10]; int a; char sex; }s;
结果是20
10个char类型一共占10个字节,最后一排剩下两个字节,无法填入int类型,所以另起一行,目前是16字节,在填入一个char一字节,字节对齐后为16+4=20字节