判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
2014-06-26 14:36
357 查看
第一个版本:
采用union的第二个版本:
最后看一个避免函数调用的版本:
这样就可以通过宏ISLITTLEENDIAN和ISBIGENDIAN读取静态变量的值来判断是否是小端模式或者大端模式了。
不过这是C的写法,C++里面可以采用内联(inline)函数来避开对宏的使用。
//return true in big-endian machines bool check_big_endian1() { int a = 0; int *p = &a; *(char *)p = 1; return a != 1; }
采用union的第二个版本:
//return true in big-endian machines bool check_big_endian2() { union{ int a; char b; }var;//sizeof(var)=4 var.a = 1; return var.b != 1; }
最后看一个避免函数调用的版本:
static union { int a; char b; }_s_var_endian_check = {1}; #define ISLITTLEENDIAN (_s_var_endian_check.b == 1) #define ISBIGENDIAN !ISLITTLEENDIAN
这样就可以通过宏ISLITTLEENDIAN和ISBIGENDIAN读取静态变量的值来判断是否是小端模式或者大端模式了。
不过这是C的写法,C++里面可以采用内联(inline)函数来避开对宏的使用。
相关文章推荐
- 推断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
- 判断CPU是大端模式还是小端模式
- 如何判断CPU是大端还是小端模式
- C语言判断数据存储时大端模式还是小端模式
- 如何判断CPU是大端还是小端模式
- 大端模式Big Endian和小端模式Little Endian以及浮点数在内存中的存储
- 如何判断CPU是大端还是小端模式
- (转)测试CPU是大端Big endian 还是小端Little Endian的C代码
- CPU的大端模式(big endian)和小端(little endian)模式
- 【转】如何判断CPU是大端还是小端模式
- cpu判断大端还是小端模式
- 怎么用软件代码判断CPU是大端模式还是小端模式
- 如何判断机器CPU是大端模式还是小端模式
- CPU的大端模式(big endian)和小端(little endian)模式
- 如何判断CPU是大端还是小端模式
- C语言判断数据存储时大端模式还是小端模式
- 判断系统中的CPU 是Little endian 还是Big endian 模式
- 判断CPU是大端还是小端模式
- 判断cpu是大端模式还是小端模式
- 怎样判断是小端存储模式还是大端存储模式