大小端:大端就是高字节存放低地址,低字节存放高地址;小端就是低字节存放低地址,高字节存放高地址
结合联合体的写法写大小端
int check_endian(void)
{
union
{
char b;
int a;
}u;
u.a = 1;
return (u.b == 1);
}
int main(void)
{
if (check_endian() == 1)
{
printf("small endian!\n");
}
else
{
printf("big endian!\n");
}
}
编译结果:
small endian!
共用体的内存分布是ab,占用同一块内存
return (u.b == 1);这句话的就是说u.b == 1这句话成立的话,逻辑真,低字节的占低位,高字节占高位,又因为char内存比int小所以占据低字节,所以结果是小端模式