编写一个代码,判断当前环境是大端存储还是小端存储。
代码一:
#include<stdio.h>
int hanshu(int x)
{
int *p;
p=&x;
return *(char*)p;
}
int main()
{
int a=1; //00000001或者01000000
if(hanshu(a)==1)
{
printf("小端存储");
}
else if(hanshu(a)==0)
{
printf("大端存储");
}
return 0;
}
代码二:
我们知道,联合体成员共用同一块内存空间,可以用此方法巧妙的判断存储方式。
#include<stdio.h>
int hanshu(int x)
{
union
{
char b;
int c;
}u;
u.c=1;
return u.b;
}
int main()
{
int a=1;
if(hanshu(a)==1)
{
printf("小端存储");
}
else if(hanshu(a)==0)
{
printf("大端存储");
}
return 0;
}