程序中结构体CLA,其中有一个字符型,一个整型,一个双精度类型,按理说应该是13个字节(1+4+8),可是这里是16个字节,这里就有一个字节同步的问题。结构体会将字符型跟int型对齐,也就是填充3个字节使cha型数据跟int型数据同样占用4个字节,然后再和double对齐,就成为了16个字节(4+4+8)。
#include <stdio.h>
#include <stdlib.h>
struct CLA //构造结构体CLA
{
char ch; //1
int i; //4
double d; //8
};
struct CLA mystru,mystru_arr[3];
int main()
{
printf("sizeof( char ) = %d\n",sizeof(char));
printf("sizeof( int ) = %d\n",sizeof(int));
printf("sizeof(double) = %d\n",sizeof(double));
printf("sizeof( CLA ) = %d\n",sizeof(CLA));
printf("sizeof(CLA_F) = %d\n",sizeof(mystru));
printf("sizeof(mystru_arr)=%d\n",sizeof(mystru_arr));
system("pause");
return 0;
}