1、为什么要用共用体:
1.节省空间
2.实现数据的转换
运行内存----------内存条,存储的空间--------硬盘
2、语法
union 结构体名
{
数据类型 变量名1;
数据类型 变量名2;
数据类型 变量名3;
};
union demo
{
char a;
int b ;
short c;
}; //定义
union demo d; //声明
3、数据如何存放和读取
数据存放
在给union中赋值的时候,因为共用同一个内存空间,所以会涉及到数值覆盖的情况,下面举例:
typedef union
{
char i;
int j;
short k;
}eg_t;
int main()
{
eg_t eg;
eg.i = 'A';
printf("%#x\n",eg.i);
eg.j = 0x12345678;
printf("%#x\n",eg.j);
eg.k =0x3476;
printf("%#x\n",eg.k);
printf("%#x\n",eg.j);
}
结果:
0x41
0x12345678
0x3476
0x12343476
数据读取
union中的成员共用同一块空间,空