C语言—判断当前计算机大小端问题
文章目录
- C语言---判断当前计算机大小端问题
- 一、方法一
- 二、方法二:使用联合体
- 三、方法二的理解
一、方法一
代码如下
#include<stdio.h>
//判断当前机器的大小端问题
int main()
{
int a = 1;//0x 00 00 00 01
//低-------------->高
//01 00 00 00 - 小端
//00 00 00 01 - 大端
if (*(char*)&a == 1)//char*类型每次只取一个字节
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
二、方法二:使用联合体
代码如下(示例):
//判断当前机器的大小端问题
int main()
{
//低-------------->高
//01 00 00 00 - 小端
//00 00 00 01 - 大端
union Un
{
char c;
int i;
}un;
un.i = 1;
if(un.c == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
三、方法二的理解
- 首先就是联合体是共用同一块内存空间的
- 其次就是联合体的大小至少是最大成员的大小