大小端其实指的就是CPU对数据存放的字节顺序。如果高位放在高地址,低位放在低地址,那么就是小端;反之,高位放在低地址,低位放在高地址,那么就是大端。
问题是,如何通过程序判断机器是大端还是小端呢,其实很简单,使用union这个结构类型就可以很容易的解决。
static union{
char c[4];
unsigned long endlian;
}my_test = {{'l','x','x','d'}};
#define ENDIAN (char)my_test.endlian;
如果ENDIAN为‘l’那么就说明为小端,如果为’d’,说明为大端。