little endian & big endian

来源:互联网 发布:网络黑白txt花无涯 编辑:程序博客网 时间:2024/05/16 11:12

检查CPU是否为大端或小端


一般而言普遍的方法是利用联合体存储数据的顺序,如

int checkCPU()
{
  union w
  {
    int a;
    char b;
  }c;
  c.a = 1;
  return (c.b == 1);  // 小端返回TRUE,大端返回FALSE
}


linux源代码

static union{ char c[4]; unsigned long l;} endian_test = {{'l','?','?','b'}}; //定义类型为union

#define endianness ((char)endian_test.l)



static bool IsBigEndian()  
{  
    const int n = 1;  
    if(*(char *)&n)  
    {  
        return false;  
    }  
    return true;  
}

原创粉丝点击