首先由几个反常现象说起
第一个反常现象:
typedef struct{
int a;
double b;
char c;
} Test1;
Test1 结构体的所占内存大小应该为int 的4字节+double 的8字节+char 的1字节=13字节,但反常的地方就是Test所占用的内存并不是13字节,而是24字节,整整翻了接近一倍
printf("%lu\n",Test1);
第二个反常现象:
typedef struct{
int a;
char c;
double b;
} Test2;
第二个结构体只是以第一个结构体为原型,稍微交换了成员的位置,但最终它所占用的内存既不是我们一贯认为的13字节,也不是像第一个结构体那样占用24字节
printf("%lu\n",Test2);