下面的程序可以用来测试是大端序还是小端序:

/*
* How can I determine whether a machine'sbyte orderis big-endian or little-endian?
* */


#include <stdio.h>

int main(int argc, char const *argv[])
{
/* method 1 */
int x = 1;
if(*(char *)&x == 1)
printf("little-endian\n");
else
printf("big-endian\n");

/* method 2 */
{
union {
int i;
char c[sizeof(int)];
} unx;

unx.i = 1;
if(unx.c[0] == 1)
printf("little-endian\n");
else
printf("big-endian\n");
}

return 0;
}

什么是大端序/小端序啊? 出处是“爱丽丝梦游仙境”里的鸡蛋的吃法,从小端开始吃还是从大端开始吃,如下图: how to eat egg

参考: wikipedia