CPU大小端判断

1.利用共用体数据结构

原理:共用体结构里面申明的每一个变量放在同一个地址开始的内存单元,如下图所示,三个变量都从1000地址开始。

CPU大小端判断_第1张图片

u8 CheckCPU(void)

{
union endian
{
u16 a;
u8 b;
} check;
check.a = 1;
return (check.b == 1); //return 1:Little Endian    return 0:Big Endian

}


2.采用宏定义方法

static union{char c[4]; unsigned long d;} endiantest={'l', '?', '?', 'b'};

#define ENDIANNESS ((char)endiantest.d)

(如果ENDIANNESS=’l’表示系统为little endian,为’b’表示big endian )。

你可能感兴趣的:(CPU大小端判断)