• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
            簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            sizeof 與字節(jié)對(duì)齊

            Posted on 2014-11-05 20:51 S.l.e!ep.¢% 閱讀(503) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++
            ??? printf("%d \n", sizeof(A));
            ??? printf("%d \n", sizeof(B));
            ??? printf("%d \n", sizeof(C));

            參考下這篇BLOG

            重點(diǎn)在這段話

            為了提高CPU的存儲(chǔ)速度,編譯器對(duì)一些變量的起始地址做了對(duì)齊處理。在默認(rèn)情況下,規(guī)定各成員變量存放的起始地址相對(duì)于結(jié)構(gòu)的起始地址的偏移量必須為該變量的類型所占用的字節(jié)數(shù)的倍數(shù)。

            struct MyStruct

            {

            double dda1;

            char dda;

            int type

            }

            為上面的結(jié)構(gòu)分配空間的時(shí)候,編譯器根據(jù)成員變量出現(xiàn)的順序和對(duì)齊方式,先為第一個(gè)成員dda1分配空間,其起始地址跟結(jié)構(gòu)的起始地址相同(偏移量0剛好為sizeof(double)的倍數(shù)),該成員變量占用sizeof(double)=8個(gè)字節(jié);接下來為第二個(gè)成員dda分配空間,這時(shí)下一個(gè)可以分配的地址對(duì)于結(jié)構(gòu)的起始地址的偏移量為8,是sizeof(char)的倍數(shù),所以把dda存放在偏移量為8的地方滿足對(duì)齊方式,該成員變量占用sizeof(char)=1個(gè)字節(jié);接下來為第三個(gè)成員type分配空間,這時(shí)下一個(gè)可以分配的地址對(duì)于結(jié)構(gòu)的起始地址的偏移量為9,不是sizeof(int)=4的倍數(shù),為了滿足對(duì)齊方式對(duì)偏移量的約束問題,編譯器自動(dòng)填充3個(gè)字節(jié)(這三個(gè)字節(jié)沒有放什么東西),這時(shí)下一個(gè)可以分配的地址對(duì)于結(jié)構(gòu)的起始地址的偏移量為12,剛好是sizeof(int)=4的倍數(shù),所以把type存放在偏移量為12的地方,該成員變量占用sizeof(int)=4個(gè)字節(jié);這時(shí)整個(gè)結(jié)構(gòu)的成員變量已經(jīng)都分配了空間,總的占用的空間大小為:8+1+3+4=16,剛好為結(jié)構(gòu)的字節(jié)邊界數(shù)(即結(jié)構(gòu)中占用最大空間的類型所占用的字節(jié)數(shù)sizeof(double)=8)的倍數(shù),所以沒有空缺的字節(jié)需要填充。所以整個(gè)結(jié)構(gòu)的大小為:sizeof(MyStruct)=8+1+3+4=16,其中有3個(gè)字節(jié)是編譯器自動(dòng)填充的,沒有放任何有意義的東西。



            国产成人精品综合久久久久| 久久中文字幕人妻熟av女| 国产精品欧美久久久久无广告 | 久久这里只有精品首页| 色婷婷狠狠久久综合五月| 久久亚洲国产成人精品无码区| 久久精品国产亚洲精品| 亚洲日本va午夜中文字幕久久| 中文字幕乱码久久午夜| 久久精品黄AA片一区二区三区| 97久久精品国产精品青草| 久久国产精品久久精品国产| 久久国产香蕉一区精品| 久久这里的只有是精品23| 久久精品人人槡人妻人人玩AV| 久久精品国产91久久综合麻豆自制 | 久久国产视屏| 久久精品国产亚洲AV麻豆网站 | 久久综合久久综合久久| 四虎国产精品成人免费久久| 亚洲va久久久噜噜噜久久狠狠| 青青青青久久精品国产h| 一本色道久久99一综合| 99热精品久久只有精品| 亚洲中文字幕无码久久精品1| 久久伊人中文无码| 开心久久婷婷综合中文字幕| 国产精品欧美亚洲韩国日本久久 | 99久久伊人精品综合观看| 国产精品久久久久久| 国产精品无码久久久久久| 91久久精品91久久性色| 国产精品无码久久久久久| 久久久久久亚洲AV无码专区| 久久精品国产99久久无毒不卡| 亚洲精品乱码久久久久久蜜桃图片 | 7777精品伊人久久久大香线蕉| 人人狠狠综合久久亚洲高清| 久久99热这里只频精品6| 亚洲综合伊人久久综合| 久久久久久夜精品精品免费啦|