对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。术语“小端”和“大端”表示多个字节值的哪一端(小端或大端)存储在该值的起始地址。

 

#define  _CRT_SECURE_NO_WARNINGS 1


#include <stdlib.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\n");

}

else

   printf("sizeof(short)= %d\n", sizeof(short));

//exit(0);

system("pause");

}

以上是一个检测大端小端的程序。