编程判断一个机器是大端存储还是小端存储


编程判断一个机器是大端存储还是小端存储
#include <stdio.h>
int main()
{
int a = 1;
char p = (char)&a;
if( p == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;

}
封装成一个函数
#include <stdio.h>
int check_sys()
{
int a = 1;
char *p = (char)&a;
if(p == 1)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
if(check_sys()==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
对上面的函数进行优化
#include <stdio.h>
int check_sys()
{
int a = 1 ;
char *p = (char)&a;
return p;

}
int main()
{
if(check_sys()==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}

#include <stdio.h>
int check_sys()
{
int a = 1 ;
return (char*)&a; //如果是小端返回1,如果是大端返回0
}
int main()
{
if(check_sys()==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
用联合体(共用体)来判断一个机器是大端存储还是小端存储
#include <stdio.h>
int check_sys()
{
union
{
int i;
char c;
}un;
un.i = 1;
return un.c;
}


int main()
{
if(check_sys()==1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}





























猜你喜欢

转载自blog.csdn.net/Zhang_Ting0020/article/details/80404524
今日推荐