int CheckCpuEndian(void)
{union{int a;char b;}c;c.a=1;return (1 == c.b);
}
返回1为LittleEndian。
联合体union的存放顺序是所有成员都从 低地址 开始存放,
若是小端模式,由低地址到高地址存放为0x01 00 00 00,c.b被赋值为0x01
CPU有两种字节序:Little endian 和Big endian
LittleEndian:低位字节数据存放于低地址;高位字节数据存放于高地址
BigEndian:低位字节数据存放于高地址;高位字节数据存放于低地址
对于数据0x12345678,在内存中存放的顺序如下:
LittleEndian:
地址:0x6000 0x6001 0x6002 0x6003
数据: 0x78 0x56 0x34 0x12
BigEndian:
地址:0x6000 0x6001 0x6002 0x6003
数据: 0x12 0x34 0x56 0x78