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;
}
 
 



















