
联合体
联合体的声明
#include<stdio.h>
union un
{
char c;//1
int i;//4
};
int main()
{
printf("%zd\n", sizeof(union un));//4
return 0;
}
为什么是4?
因为联合体只为最大的成员分配足够的内存空间
c和i共用一块空间,没有独立的空间
联合体大小的计算
为什么不是最大的5呢?
因为至少是5
发现最少是4的倍数 所以是8
联合体节省空间
这样子写起来比较浪费内存,可以修改
联合的一个练习
判断当前的机械是大端还是小端
这个之前分辨大小端的。
#include<stdio.h>
union un
{
char c;
int i;
};
int main()
{
union un un1;
un1.i = 1;
if (un1.c == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
枚举类型
代码实现: