本次代码测试当前电脑存储是小端存储模式还是大端存储模式
下面介绍两种测试方法;
1.测试方法一:
#include<stdio.h>
int main() //创建主函数
{
int a=1; //创建一个int型变量赋值为1,此处a为int型是4个字节;
if(1==*(char*)&a) //取地址a,强行转换为(char*)类型,只可以访问一个字节
{
printf("小端存储模式"); //取到a地址的第一个字节为1时,说明是小端;
}
else //else的意思是否则相反的意思,取到a地址的第一个字节为0时,说明是大端;
{
printf("大端存储模式");
}
return 0;
}
2.测试方法二:
#include<stdio.h>
int check_sys() //创建的函数 check_sys 返回值为 int 类型
{
union Un //创建联合体
{
char c; //创建字符 c 一个字节
int i; //创建整形 i 四个字节
}u; //u为重新给联合体命名
u.i = 1; // i 赋值为1
return u.c; //返回u.c 因为 c 和 i 共用四个字节内存,要么都是大端存储,要么都是小端存储,当 i 为 1 时,第一个字节就 c 的第一个字节
//当 return 返回c的值时,返回1表示小端存储,返回零表示大端存储
}
int main() //创建主函数
{
int ret = check_sys();//创建一个函数来解决大小端存储测试,返回一个整型值用变量ret来接受
if (1 == ret)
printf("小端存储模式"); //将结果打印到屏幕上
else
printf("大端存储模式"); //将结果打印到屏幕上
return 0;
}