为什么输出的 是24???????
来源:百度知道 编辑:UC知道 时间:2024/08/22 14:55:22
struct stype
{
char name [10];
float score[3];
};
union type
{
int i;
unsigned char ch;
struct stype student ;
}t;
printf("%d\n",sizeof(t));
{
char name [10];
float score[3];
};
union type
{
int i;
unsigned char ch;
struct stype student ;
}t;
printf("%d\n",sizeof(t));
在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内的元素的长度小于处理器的位数的时候,便以结构体里面最长的数据元素为对齐单位,也就是说,结构体的长度一定是最长数据元素的整数倍。如果结构体内存在长度大于处理器位数的元素,那么就以处理器的位数为对齐单位。结构体对齐参数默认为8个字节。