大端:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;
小端:数据的低位保存在内存的低地址中,而数据的搞完保存在内寸的高地址中;
大小端助记图:
测试本机是大端还是小端的代码:
#include <stdio.h>
int main()
{
union
{
short s;
char c[sizeof(short)];
}un;
un.s = 0x0102;
if(sizeof(short) == 2)
{
if(un.c[0] == 1 && un.c[1] == 2)
printf("big-endian\n");
else if(un.c[0] == 2 && un.c[1] == 1)
printf("little-endian\n");
else
printf("unknown\n");
}
printf("sizoef(short) = %d\n",sizeof(short));
return 0;
}