简短程序推断大小端

先放代码:

int check()
{  
union
    {  
        unsigned int  a;  
        unsigned char b;  
    }c;  
    c.a = 1;  
return 1 == c.b;  
}

再说原理:

上述程序,假设返回值为1则是小端,假设是0则大端。由于union类型共用一段内存,所以c占4个字节(假设是32位机器),把1赋给a。假设是小端则1会存放在低位,则取出b也是1,反之若是大端则1存放在高位,b即为0.

posted @ 2016-03-30 08:02  phlsheji  阅读(191)  评论(0编辑  收藏  举报