• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-4  評論-40  文章-117  trackbacks-0

            首先四種類型都是無符號類型,是用以表示元素個數或者數組索引的最佳類型。在作為函數參數時,不需像有符號類型那樣檢測值是否小于零。

            1. ::size_t還是std::size_t
            請使用std::size_t,因為你處于C++的世界。
            在此,所有C++標準庫組件用以表示元素個數的類型(比如size()或者operator[])都是std::size_t。

            std::size_t count = array.size(); // array是typedef vector<int>
            std::size_t index = 0;
            array[ index ] = 0;

            注意:
            1) 如果某個CPP沒有使用任何C++標準庫組件,那么就有可能需要包含<cstddef> 頭文件。
            2) std::size_t其實就是::size_t (::size_t被引入到namespace std中(你可以在<cstring>中找到)


            2.基本上我們不會考慮unsigned int和unsigned long,因為處在C++的世界,使用C++標準庫組件就是在所難免了。
            如果你非要了解其細枝末節的話,那么下面是一份清單:

            unsigned int 和 unsigned long比較(不考慮32位以下的平臺)

            如果不考慮可移植性:
            在32位平臺上更應該使用unsigned int,因為它:
            1)和unsigned long 一樣的大小,32位可以表示到42.9億。
            2) 比unsigned long更常用
            3) 和std::size_t是一樣的類型

            如果是64位平臺的話:
            1) unsinged int仍是32位,而unsigned long就是64位了。
            2) 更應該使用unsigned long因為處理器對64位具有更快的處理速度。

            就目前而言,64位平臺還不夠成熟,所以向64位平臺的移植基本不做考慮。

            但是如果你堅持要考慮可移植性(注意是硬件32位平臺向64位移植,而非軟件):
            1) 如果對速度敏感:使用unsigned long,無論在32位還是64位都有最快的處理速度。
            2) 如果對內存敏感:使用unsigned int,使用內存量不會因平臺而改變。
            不過通常對于硬件平臺的可移植性的考慮都是多余的(不夠敏捷哦)。

            3. 關于unsigned類型:

            有時候會碰到一些C語言的函數,它的參數類型是unsigned,而不是unsigned int、unsigned long之類的,例如:Turbo C的庫函數中有這么幾個函數:unsigned far setgraphbufsize(unsigned bufsize);int read(int handle, void *buf, unsigned len); int write(int handle, void *buf, unsigned len);

            [摘引他人]這種情況一般都會在前面進行宏定義的
            是為了版本兼容或跨平臺
            現在的32位變成64位的機器 這樣的定義有必要

            #ifdef WINDOWS
               define unsigned (unsigned int)
            #endif

            ifdef LINUX
                define unsigned (unsigned long)
            #endif
            這樣的話在跨平臺的時候就很有必要了

            CHECK:個人經查閱VC6系統頭文件,并未發現上面的宏定義;同時結合一些函數(如_beginthreadex)查閱MSDN,判斷unsigned在32位系統下就代表unsigned int,畢竟這是系統最常用的類型。



            posted on 2010-04-27 17:29 李陽 閱讀(3291) 評論(0)  編輯 收藏 引用 所屬分類: C++
            国产香蕉久久精品综合网| 日韩人妻无码精品久久免费一| 粉嫩小泬无遮挡久久久久久| 亚洲女久久久噜噜噜熟女| 久久国产亚洲精品无码| 久久97精品久久久久久久不卡| 蜜桃麻豆www久久| 久久国产三级无码一区二区| 色播久久人人爽人人爽人人片AV| 精品熟女少妇av免费久久| 久久精品国产99久久丝袜| 中文字幕乱码久久午夜| 青青青青久久精品国产| 精品久久久一二三区| 久久电影网2021| 亚洲国产精品无码久久久不卡| 品成人欧美大片久久国产欧美| 波多野结衣久久一区二区| 久久美女人爽女人爽| 亚洲精品tv久久久久久久久| 久久久久99精品成人片三人毛片| 99久久无码一区人妻a黑| 久久久久久久免费视频| 国产农村妇女毛片精品久久| 久久99亚洲网美利坚合众国| 亚洲国产一成久久精品国产成人综合 | 精品久久久久久成人AV| 亚州日韩精品专区久久久| 日本久久久精品中文字幕| 波多野结衣中文字幕久久| 97久久婷婷五月综合色d啪蜜芽| 久久久久久av无码免费看大片| 久久精品国产免费一区| 九九久久自然熟的香蕉图片| 伊人久久大香线蕉av一区| 一级a性色生活片久久无少妇一级婬片免费放 | 久久久久国产精品嫩草影院| 久久99国产亚洲高清观看首页| 久久久婷婷五月亚洲97号色| 狠狠综合久久综合88亚洲| 久久无码中文字幕东京热|