开门见山,其实只需要判断第一个字节的内容即可明确,这里就用最简单的1即可:
#include<stdio.h>
#include<assert.h>
int main()
{
int a = 1;
if (*(char*)&a == 1)//通过访问内存中存储的1的第一个字节的内容(2个16进制位)即可判定
{
printf("小端存储\n");
}
else
{
printf("大端存储\n");
}
return 0;
}
法二:用函数判断后返回
#include<stdio.h>
#include<assert.h>
int check()
{
int a = 1;
return *(char*)&a;
}
int main()
{
int a = 1;
int ret = check();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}