考虑一个16位整数,它由2个字节组成.内存中存储这两个字节有两种方法:一种是将低序字节存储在起始位置,称为小端字节序;另一种方法是将高序字节存储在起始地址,这称为大端字节序.
代码如下(摘自UNIX网络编程):
#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");
}
else
printf("sizeof(short)= %lu\n",sizeof(short));
}