union内存
#include<stdio.h>union s{
short int num;
char name;
float score;
double zz;
}d;
int main()
{
printf("%d",sizeof(d));
}
这个最后算出来为什么是16呢,union的内存不是按最大的那一个算吗? 看这个:https://zhidao.baidu.com/question/8567906.html 因为这里存在字节对齐的问题
联合体所占的空间不仅取决于最宽成员,还跟所有成员有关系,即其大小必须满足两个条件:
1.大小足够容纳最宽的成员;
2.大小能被其包含的所有基本数据类型的大小所整除。
页:
[1]