讲解:
所谓大小端,从存储的角度看,低字节存在低地址位就是小端;反之低字节存放在地址的高位则为大端;

程序中的一个int数据0x0010,如果CPU为小端则存储为0x0010,0x0010==256;如果为大端的话应该为0x0100;
0x0010 == 00000000 00000000 0000001 00000000

      高地址                       低地址

0x0100 == 00000000 00000001 0000000 00000000

      高地址                       低地址

C代码:

#define HOST_BYTEORDER_LITTLE_ENDIAN 0
#define HOST_BYTEORDER_BIG_ENDIAN 1

int GetHostByteOrder(void)
{
    union
    {
        unsigned int  bits32;
        unsigned char bytes[4];
    } value = {0};
    value.bytes[0] = 0;
    value.bytes[1] = 1;
    value.bytes[2] = 0;
    value.bytes[3] = 0;

    if ( 256 == value.bits32 )
    {
        return HOST_BYTEORDER_LITTLE_ENDIAN;
    }
    else
    {
        return HOST_BYTEORDER_BIG_ENDIAN;
    }
}