1、共用体(union) 也称为联合体,跟结构体类似,但比结构体低调很多,他们的本质区别,结构体中的各个成员各自独立,占用不同的内存空间,而共用体不同,它里面的各个成员的内存是"共用"的
union example
{
int a;
char b;
double c;
}x;
在这个例子中,共用体变量x的大小等于各成员的最大值,也就是c的大小:8个字节。
由于在内存中这三个成员是相互覆盖的,所以在任意给定的时刻,只能有一个成员有效。
//代码示例:
#include<stdio.h>
//法一
/* int check1()
{
int i = 1; //表示:0x0000 0001
char *pi = (char*)&i; //将int 强制转换为char 型
return *pi == 0; //如果读到的字节为1,则为小端序,如果为0,则为大端序
}
int main()
{
if(check1() ==1)
printf("big\n");
else
printf("little\n");
return 0;
}
*/
//法二
int check2()
{
union test{
char ch;
int i;
}test0;
test0.i = 1;
return test0.ch == 0; //如果读到的字节为1,则为小端序,如果为0,则为大端序
}
int main()
{
if(check2() ==1)
printf("big\n");
else
printf("little\n");
return 0;
}