共用体去判断大小端
共用体在C语言中是一种特殊的数据类型,允许我们在相同的内存中存放不同的数据类型。在分配内存的时候,共用体所分配到的内存大小为所有成员中所占内存空间最大的成员的内存大小。
#include <stdio.h>
union data
{
char a[2];
short int b;
};
int main()
{
union data d;
d.b = 0x1234;
printf("b--address:%p b--data:%#x\n",&d.b,d.b);
printf("a[0]--ddress:%p a[0]--data:%#x\n",&d.a[0],d.a[0]);
printf("a[1]--address:%p a[1]--data:%#x\n",&d.a[1],d.a[1]);
return 0;
}
运行效果图
我们观察发现,地址的低位存储数据的低位,地址的高位存储的是数据的高位,则程序所运行的机器为小端模式。