两种存储数据的方式:小端字节序LSB 和大端字节序MSB。
小端字节序:低位字节在前,高位字节在后,绝大部分处理器和系统都是小端字节序。
大端字节序:高位字节在前,低位字节在后,网络通信采用大端字节序。
如下图所示:
实现判断的C代码如下:
#include <stdio.h>
#define LSB 1 //利用宏定义更加清晰
#define MSB 0
int is_lsb(void)
{
union //联合里面的成员是使用同一存储空间
{
unsigned char a;
unsigned int b;
}var;
var.b = 0x12345678;
if(var.a == 0x78)
return LSB;
else
return MSB;
}
int main(void)
{
printf("System endianness is %s\n",is_lsb() ? "LSB" : "MSB");
return 0;
}