1. 程式人生 > >用程式設計來判斷系統是大端還是小端

用程式設計來判斷系統是大端還是小端

  • 大端是高位位元組先儲存(高地址)
  • 小端是地位位元組先儲存(低地址)
  • 網路位元組序是大端的,也就是高位位元組先傳輸

下面是程式:

#include <stdio.h>
int main() {

    union ut{
    short s;
    char c[2];
    }u;

    if(sizeof(short) == 2)
    {
        u.s = 0x0102;
        if(u.c[0] == 1 && u.c[1] == 2)
            printf("big endian\n");
        else
if(u.c[0] == 2 && u.c[1] == 1) printf("little endian\n"); } return 0; }

上面的程式有許多小細節,其中聯合裡的資料共用記憶體,所以陣列C裡的內容是0x0102。很巧妙的利用聯合這一特性,當然還有其他方法。