1.题目
写一个程序实现大/小端序的判断
2.前置知识
见文61.【C语言】数据在内存中的存储
见文65.【C语言】联合体
3.代码
方案一
对于单个变量,判断存储的第一个字节
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 2;
if ((*(char*)&a) == 2)
printf("小端序");
else
printf("大端序");
return 0;
}
方案二
对于联合体,另外设一个char类型的变量,从而在多个字节中只判断第一个字节
#include <stdio.h>
int check_endian()
{
union U
{
char a;
int b;
}un;
un.b = 1;
//返回联合体的第一个字节
return un.b;
}
int main()
{
int ret = check_endian();
if (ret)
printf("小端");
else
printf("大端");
return 0;
}