qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          關于UNIX功能測試宏

           UNIX的功能測試宏,在頭文件中定義了很多POSIX.1和XPG3的符號。但是除了POSIX.1和XPG3定義外,大多數實現在這些頭文件中也加上了他們自己的定義。如果在編譯一個程序時,希望它只是用POSIX定義而不使用任何實現定義的限制,那么就需要定義常數_POSIX_SOURCE,所有POSIX.1頭文件中都是用此常數。當該常數定義時,就能排除任何實現專有的定義。
            常數_POSIX_SOURCE及對應的常數_XOPEN_SOURCE被稱為功能性測試宏(feature test macro)。所有功能測試宏都以下劃線開始。要使用他們時,通常在cc命令行中以下列方式定義:
            cc -D_POSIX_SOURCE file.c
            這使得在C程序包括任何頭文件之前,定義了功能測試宏。如果我們僅想用POSIX.1定義,那么也可以將源文件的第一行設置為:
            #define _POSIX_SOURCE 1
            另一個功能測試宏是:__STDC__,它由符合ANSI C標準的編譯程序自動定義。這樣就允許我們編寫ANSI C編譯程序和非ANSI C編譯程序都能編譯的程序。例如,一個頭文件可能會是:
          void *myfunc(const char*, int);
          #else
          void *myfunc();
          #endif
          #ifdef __STDC__
          void *myfunc(const char*, int);
          #else
          void *myfunc();
          #endif
            這樣就能發揮ANSI C原型功能的長處,要注意在開始和結束的兩個連續的下劃線常常打印成一個長下劃線。

          posted on 2014-09-17 09:38 順其自然EVO 閱讀(215) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东辽县| 昌平区| 阜南县| 中山市| 乌兰察布市| 儋州市| 响水县| 顺义区| 洞口县| 杭锦旗| 眉山市| 来安县| 株洲市| 阿勒泰市| 罗山县| 比如县| 巴楚县| 保山市| 陆良县| 台山市| 增城市| 余庆县| 眉山市| 海伦市| 托克逊县| 格尔木市| 华宁县| 沈丘县| 阜阳市| 屯门区| 衡东县| 和田市| 深圳市| 体育| 乐业县| 运城市| 清流县| 叙永县| 屏东县| 灵石县| 阿鲁科尔沁旗|