一般情况下都是不一样的
第一个是6字节,第二个是4字节(我的机器sizeof(int)== 4);
是因为要对齐:按单个变量占字节数最大的数量为一个单位,各个变量排列时,若两个或多个没有占满一个单位时,可以在一个单位内排列,若超出了,则从超出的那个开始,从下一个单位开始算,以此类推,最终按单位的倍数计总字节数(如u1:最大单位是2个字节,b1占一个,再排b2时不够一个了,所以另起,b3也得另起,占了三个单位行,所以总字节数为2×3=6);
用gcc编译器时,若加上__attribute__((packed))属性,则是占用字节总数按照实际占用字节数