代码实现
int check_sys()
{
union
{
char c;
int i ;
}u;
u.i = 1;
return u.c ; // 小端返回 1 ,大端返回 0 ;
int main()
{
int ret1 = check_sys1();
int ret2 = check_sys2();
if (ret1 == 1)
printf("sys1 :小端存储\n");
else
printf("sys1 :大端存储\n") ;
return 0;
}
原理
union
{
char c;
int i ;
}u;
u.i = 1;
return u.c ;
变量c 与 变量i 共用低地址的第一个字节。
在i 中存入 0X 00 00 00 01后,如果计算机采用的是小端存储,01便被放入低地址处,那么变量c 里存的便是i 里的0X 01 ;反之存的便是 0x 00 。
我们只需取出变量c的值加以判断 便可判断出大小端。