判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
来源:互联网 发布:南风知我意晋江书包网 编辑:程序博客网 时间:2024/05/20 12:47
第一个版本:
//return true in big-endian machinesbool check_big_endian1(){int a = 0;int *p = &a;*(char *)p = 1;return a != 1;}
采用union的第二个版本:
//return true in big-endian machinesbool check_big_endian2(){union{int a;char b;}var;//sizeof(var)=4var.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)函数来避开对宏的使用。
7 0
- 判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
- 判断CPU模式是大端还是小段(big-Endian和little-Endian)
- 判断CPU模式是大端还是小段(big-Endian和little-Endian)
- 判断处理器器是大端(Big-Endian)还是小端( Little-Endian)
- 判断大端(big-endian)还是小端(little-endian)
- 判断CPU是Big-Endian还是Little-Endian
- 判断字节的升序存储还是降序存储(little-endian or big-endian)
- 大端(Big Endian)、小端(Little Endian)存储模式名字的来历
- 大端(Big Endian)、小端(Little Endian)存储模式名字的来历
- CPU存储方式—Big Endian、Little Endian
- 判断系统中的CPU 是Little endian 还是Big endian 模式
- 编一段程序判断系统中的CPU 是Little endian 还是Big endian 模式
- 更好的办法:用union判断系统中的CPU 是Little endian 还是Big endian 模式
- 判断机器字节存储顺序是big endian还是little endian
- 如何判断big-endian还是little-endian?
- 大端(Big Endian)与小端(Little Endian)
- 大端(big endian)、小端(little endian)问题
- 大端(Big Endian)和小端(Little Endian)
- C++学习笔记
- 第五章:RARP:逆地址解析协议
- Linux文件权限管理
- Android系统中传感器相关的简介
- 苹果IOS与谷歌 android系统的UI设计原则
- 判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
- android多分辨率多屏幕密度下UI适配方案
- Java NIO客户端开发问题
- C++利用gsoap调用webservice
- __declspec(selectany)的作用
- osgAudio编译
- 反转链表
- 利用DHT网络原理制作bt采集蜘蛛
- ogg长事务