CPU大/小端模式是指CPU存取数据的两种方式,比如要存取0x12345678(4字节),如果是小端模式,则先存取0x78(低字节),如果是大端模式,则是先存取0x12(高字节)。一般来说,x86系列CPU是小端模式,PowerPC通常是大端,单片机/ARM系列是小端模式。
而今天跟大家分享的是判断CPU大小端模式的两种经典方法,先作如下定义:
#define LITTLE_ENDIAN 0
#define BIG_ENDIAN 1
typedef unsigned char BYTE;
方法一:
判断CPU大小端模式的两种经典方法
int CheckEndian(void)
{
unsigned int num, *p;
p = #
num = 0;
*(BYTE *)p = 0xFF;
if(num == 0xFF)
return LITTLE_ENDIAN;
else
return BIG_ENDIAN;
}
方法二:
判断CPU大小端模式的两种经典方法
int CheckEndian(void)
{
union w;
{
int a;
char b;
}c;
c.a = 1;
if(c.b == 1)
return LITTLE_ENDIAN;
else
return BIG_ENDIAN;
}