typedef unsigned char BOOL;
#define BOOL_TRUE 1
#define BOOL_FALSE 0
判断机器大小端面,小端返回BOOL_TRUE,大端返回BOOL_FALSE;
首先,先说明下大小端的定义:
小端:内存的低地址存储的是数据的低位,高地址存储的是数据的高位。
大端:内存的高地址存储的是数据的
例:大小端对一个int类型数据的存储,以0x12345678为例
内存地址 | 0x0103 | 0x0102 | 0x0101 | 0x0100 |
小端 | 12 | 34 | 56 | 78 |
大端 | 78 | 56 | 34 | 12 |
1.利用联合体特性判断(联合体union的存放顺序是所有成员都从低地址开始存放)
BOOL IsLittleEndian()
{
ENDIAN_U stEndian;
stEndian.sShort = 0x0001;
if(stEndian.cChar == 0x01)
{
return BO