内存中存储两个字节有两种方法:
1).将低字节存储在起始地址,这种称为小端字节序(little-endian)
2).将高序字节存储在起始地址,这种称为大端字节序(big-endian)
下面的函数实现了这个功能:
#include "unp.h"
int main(char argc, char ** argv) {
union {
short s;
char c[sizeof(short)];
}un;
un.s = 0x0102;
printf("%s:", CPU_VENDOR_OS);
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");
} else {
printf("sizeof(short) = %d\n", sizeof(short));
}
exit(0);
}