实例如下
#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了。