首先得了解什么是大小端存储如何存储:
大端存储:数据的低位存放在内存的高地址,数据的高地址存放在内存的低地址处叫做大端存储
小端存储:数据的低位存放在内存的低地址,数据的高地址存放在内存的高地址处 叫做小端存储
笔试题一般都会有大小端存储的判断:
今天就用代码的方式来判断一下当前编译器下的存储方式:
第一种方法:直接判断方法
#include <stdio.h>
int main()
{
int c=1;
if(*(char*)&c==1) //c 进行强制转换char* 再解引用操作就能取到第一个字节的数字
{
printf("小端\n);
}
else
{
printf("大端\n);
}
return 0;
}
第二种方法:封装函数判断法
#include <stdio.h>
int sys()
{
int c=1;
return *(char*)&c;
int main()
{
int c=1;
int ret=sys();
if(ret==1)
{
printf("小端\n");
}
else
{
printf("大端\n);
}
return 0;
}
第三种方法:枚举操作法
#include <stdio.h>
int sys()
{
union un
{
char a;
int i;
}u;
u.i=1;
return u.c;
int main()
{
int c=1;
int ret=sys();
if(ret==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}