回覆列表
  • 1 # 不可關禁閉x

    寫一個函式判斷系統是大端還是小端。若處理器是Big_endian的,則返回0;若是Little_endian的,則返回1.

    大端格式:在這種格式中,字資料的高位元組儲存在低地址中,而字資料的低位元組則存放在高地址中

    小端格式:與大端儲存格式相反,在小端儲存格式中,低地址中存放的是字資料的低位元組,高地址存放的是字資料的高位元組

    聯合體union的存放順序是所有成員都從低地址開始存放。

    Int checkCPU ()

    {

    Union w

    {

    Int a;

    Char b;

    }c;

    c.a=1;

    return (c.b==1);

    }

    UNIX 網路程式設計 第一卷 78頁 (英文版) 給出了這樣一段程式碼:

    PS: 下面程式碼中的

    unp.h

    是Stevens 老大自己定義的一個頭檔案,具體的程式碼在這本書的附錄裡有給出來.

    程式碼

    1

    2 #include "unp.h"

    3

    4 int main(int argc ,char ** argv)

    5 {

    6

    7 union {

    8 short s;

    9 char c[sizeof(short)];

    10 }un;

    11

    un.s

    = 0x0102;

    12 printf("%s\n",CPU_VENDOR_OS);

    13

    14 if(sizeof(short) == 2)

    15 {

    16 if(un.c[0] == 1 && un.c[1] ==2 )

    17 printf("big-endian\n");

    18 else if (un.c[0] == 2 && un.c[1] == 1)

    19 printf("little-endian\n");

    20 else printf("unknow");

    21 }else

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

    23 exit(0);

    24 }

    25

  • 中秋節和大豐收的關聯?
  • 《聖鬥士星矢》中,山羊座的實力怎麼樣?