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("小端序");elseprintf("大端序");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("小端");elseprintf("大端");return 0;
}