union判断大小端

来源:互联网 发布:菜鸟网络借壳三泰控股 编辑:程序博客网 时间:2024/06/06 03:41
        union 型数据所占的空间等于其最大的成员所占的空间。对 union 型的成员的存取都是相对于该联合体基地址的偏移量为 0 处开始,也就是联合体的访问不论对哪个变量的存取都是从 union 的首地址位置开始。
#include <stdio.h>

int main()
{
union check
{
int i;
char ch;
}c;
c.i = 1;
printf("%u\n", c.ch);
return 0;
}

对于小端:01000000 对于大端:00000001
如果读出来的是01就说明是小端,否则大端。

当然也可以这样:
#include <stdio.h>

int main()
{
union check
{
int i;
char ch;
}c;
c.i = 1<<31;
printf("%u\n", c.ch);
return 0;
}
对于小端:00000080 对于大端:01000000
如果读出来的是01就说明是大端,否则小端。
原创粉丝点击