“用C语言写一个函数测试当前机器的大小端模式”是一个经典的笔试题,如下使用两种方式进行解答:
1. 用union来测试机器的大小端
#include <stdio.h> union test
{
int a;
char b;
}; int endian_test(void)
{
union test t1;
t1.a = ;
return t1.b;
} int main(void)
{
int i = endian_test();
if(i == )
{
printf("is little endian.\n");
}
else
{
printf("is big endian.\n");
} printf("i = %d.\n", i); return ;
}
2. 用指针测试机器大小端
#include <stdio.h> int main()
{
int a = ;
char b = *((char *)&a); return ;
}
注: 通信系统中,通信双方数据传送方式中,先发低字节的方式叫小端,先发高字节的方式叫大端。