#pragma pack(1) 这句话就是让int i,跟char c连续储存,假如不加这句话,你sizeof (struct a) 输出肯定是8个字节,因为计算机为了减少CPU读取数据的指令周期,实际上char型成员虽然本来只有1个字节,但实际上却占用掉了4个字节。因此实际占用的是8个字节。加了这句话之后char c就会接着i继续存储,别听楼上那个人,他一点都不靠谱