我们在一个短整数变量中存放2字节的值0x0102,然后查看它的
两个连续字节c[0]和c[1],以此确定字节序。
#include <unistd.h>
#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");
}
else {
printf("sizeof(short) = %d\n", sizeof(short));
}
return 0;
}