大端:高字节序存储在低地址(即起始地址)
小端:低字节序存储在低地址(即起始地址)
#include <stdio.h>
int main(int argc, char **argv)
{
union {
short s;
char c[sizeof(short)];
} un;
un.s = 0x0102; //注:0x表示十六进制的存储方式和,我们都知道short占两个字节,一个字节有八位,而一个十六进制数占四位,我们很容易用16个字节存储四个十六进制数字
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("unkown\n");
}
}
return 0;
}