上周写过一个什么是大小端的答疑解惑,今天接着说如何使用C语言来确定当前系统的大小端,下面介绍两种有效的方法。
方法1:利用union类型 —— 可以利用union类型数据的特点:所有成员的起始地址一致。
#include <cstdio>
int checkSystem()
{
union check
{
int i;
char ch;
}c;
c.i=1;
return (c.ch==1);
}
int main()
{
checkSystem()==1 ? printf("Little-endian/n") : printf("Big-endian/n");
return 0;
}
方法2:对int强制类型转换
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
(*(char *)&i == 1) ? printf("Little-endian/n") : printf("Big-endian/n");
system("pause");
return 0;
}