实例如下
#include <stdio.h> int main(int argc, char *argv[]) { struct _THUNDER{ int iVersion; char cTag; char cAdv; char cEnd; int iUser; }Thunder; int sz = sizeof(Thunder); printf("%d\n",sz); }结果为:12
交换cEnd 和iUser的位置后
#include <stdio.h> int main(int argc, char *argv[]) { struct _THUNDER{ int iVersion; char cTag; char cAdv; int iUser; char cEnd; }Thunder; int sz = sizeof(Thunder); printf("%d\n",sz); }结果为:16
比较两者可以得到,第一个中的三个char类型的数据合并为一个int的类型,第二个中是将前两个char类型合并为一个int,最后的char又为一个int,这样就4个int了。