大端小端模式是指高位存放在高地址还是存放在地址值。
大端模式:高位存放在低地址,低位存放在高地址
小端模式:高位存放在高地址,低位存放在低地址
不管是大端还是小端,读取数据都是从低地址开始读,因此char类型在大端小端都是一样的,可以用union来判断大小端。
union var
{
int a;
char b;
};
int is_little_endian(void)
{
union var u1;
u1.a = 1;
return u1.b;//大端返回0,小端返回1
}
当然,用强制转换也可以达到同样的效果
int is_little_endian(void)
{
int a = 1;
return *(char*)(&a);//大端返回0,小端返回1
}