• <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>
            posts - 34,comments - 2,trackbacks - 0

            數(shù)據(jù)對齊,是指數(shù)據(jù)所在的內(nèi)存地址必須是該數(shù)據(jù)長度的整數(shù)倍。比如DWORD數(shù)據(jù)的內(nèi)存其實地址能被4除盡,WORD數(shù)據(jù)的內(nèi)存地址能被2除盡。x86 CPU能直接訪問對齊的數(shù)據(jù),當它試圖訪問一個未對齊的數(shù)據(jù)時,會在內(nèi)部進行一系列的調整,這些調整對于程序來說是透明的,但是會降低運行速度,所以編譯器在編譯程序時會盡量保持數(shù)據(jù)對齊。

            C/C++編譯器在內(nèi)存分配時也保持了數(shù)據(jù)對齊,請看下例:

            struct{

            short a1;

            short a2;

            short a3;

            }A;

            struct{

            long  a1;

            short a2;

            }B;

            cout<<sizeof(A)<<","<<sizeof(B)<<endl;//其它代碼略去

            結構體A和B的大小分別是多少呢?

            默認情況下,為了方便對結構體元素的訪問和管理,當結構體內(nèi)的元素都小于處理器長度的時候,便以結構體里面最長的數(shù)據(jù)為對齊單位,也就是說,結構體的長度一定是最長數(shù)據(jù)長度的整數(shù)倍。

            如果結構體內(nèi)部存在長度大于處理器位數(shù)時就以處理器位數(shù)為對齊單位。

            結構體內(nèi)類型相同的連續(xù)元素將存在連續(xù)的空間內(nèi),和數(shù)組一樣。

            上例中:

            A有3個short類型變量,各自占2字節(jié),總和為6,6是2的倍數(shù),所以sizeof(A)=6;

            B有一個long類型變量,占4字節(jié),一個short類型的變量,占2字節(jié),總和6不是最大長度4的倍數(shù),所以要補空字節(jié)以增至8實現(xiàn)對齊,所以sizeof(8)=8。

             

            在C++類的設計中遵循同樣的道理,但需注意,空類需要占1個字節(jié),靜態(tài)變量(static)由于在棧中分配,不在sizeof計算范圍內(nèi)。

            posted on 2011-10-01 10:13 Yu_ 閱讀(555) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            亚洲人成无码网站久久99热国产| 人妻精品久久久久中文字幕一冢本| 日韩精品久久无码中文字幕| 亚洲中文字幕无码久久精品1| 色综合久久久久久久久五月| A级毛片无码久久精品免费| 久久天天躁狠狠躁夜夜2020老熟妇 | 亚洲国产精品无码久久久久久曰| 国产精品一区二区久久精品涩爱| 欧美精品久久久久久久自慰| 久久国产亚洲高清观看| 久久久久国产精品三级网| 77777亚洲午夜久久多喷| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 欧美午夜精品久久久久久浪潮| 国内精品久久久久影院老司 | 精品久久久久香蕉网| 国内精品久久久久久久影视麻豆 | 久久精品国产一区| 久久精品免费大片国产大片| 亚洲va中文字幕无码久久不卡| 成人a毛片久久免费播放| 亚洲精品tv久久久久久久久| 久久久久久毛片免费看| 国产精品久久网| 日韩精品久久无码人妻中文字幕| 日产久久强奸免费的看| 99久久国产热无码精品免费久久久久| 模特私拍国产精品久久| 久久久国产精华液| 国内精品久久久久久久coent | 99久久99久久精品国产片果冻| 国产一区二区三精品久久久无广告 | 久久精品成人影院| 国产 亚洲 欧美 另类 久久| 久久青青草原精品影院| 国产精品青草久久久久婷婷 | 婷婷五月深深久久精品| 久久久久久精品无码人妻| 波多野结衣AV无码久久一区| 欧美亚洲国产精品久久久久|