大小端其實指的就是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’,說明爲大端。