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

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

            今天下午權(quán)哥忽然發(fā)過(guò)來(lái)一道題,后來(lái)說(shuō)明是網(wǎng)上流傳的一道關(guān)于字節(jié)對(duì)齊的題,很久沒(méi)做了。嘗試著想啊想啊做了下。也算做出來(lái)了
            #pragma pack(8)

              struct s1{
              short a;
              long b;
              };

              struct s2{
              char c;
              s1 d;
              long long e;
              };

              #pragma pack()

              問(wèn)
              1.sizeof(s2) = ?
              2.s2的s1中的a后面空了幾個(gè)字節(jié)接著是b?
            回憶中的思路是:
            s1 short(2) long(4)
               0 1       2 3 4 5       6 7 8 9 10
               short     long                                   算錯(cuò)了

            對(duì)齊的原則是取小 當(dāng)前類型與pack(n)的字節(jié)數(shù)取小的那一個(gè)

            short占兩個(gè)字節(jié)后當(dāng)前地址為2 long為四字節(jié)??梢员徽? 所以不用添字節(jié)
            所以  sizeof(s1) = 6                            算錯(cuò)了


            這個(gè)地方算錯(cuò)了。。非常對(duì)不起大家。。重寫的那天。。頭暈。。按1字節(jié)算了
            也多謝朋友的提醒,以后一定注意.

            重新修正為

            s1 short(2) long(4)
             0 1       2 3    4 5 6 7
            short      補(bǔ)          long

            對(duì)齊的原則是取小 當(dāng)前類型與pack(n)的字節(jié)數(shù)取小的那一個(gè)
            short占兩個(gè)字節(jié)  long是占四個(gè)字節(jié)。所以需要當(dāng)前地址可以被4整除  所以。。補(bǔ)兩個(gè)字節(jié)
            所以  sizeof(s1) =8



            然后來(lái)算s2
            char(1)  s1被拆分 (short(2) long(4)   結(jié)構(gòu)體拆分后按最大字節(jié)對(duì)齊)  longlong(8)

             0        1 2 3          4567    8 9 10 11  12 13 14 15   16 17 18 19 20 21 22 23 
             char      補(bǔ)           short          long          補(bǔ)              longlong
            所以sizeof(s2)=24
            a后面空了2個(gè)字節(jié)接著是b

            應(yīng)該是沒(méi)有問(wèn)題的 還有一點(diǎn)。。如果最后位數(shù)不夠的話。。。是按packer和結(jié)構(gòu)體兩個(gè)最小的字節(jié)數(shù)補(bǔ)齊

            posted on 2007-10-15 21:43 Randy 閱讀(572) 評(píng)論(2)  編輯 收藏 引用

            評(píng)論

            # re: 字節(jié)對(duì)齊 2007-10-19 21:35 aaa

            這個(gè)答案對(duì)嗎?sizeof(s1)=6?  回復(fù)  更多評(píng)論   

            # re: 字節(jié)對(duì)齊 2007-10-20 15:46 Randy

            啊。。對(duì)不起。。??戳艘幌隆?。。錯(cuò)了。。。Sorry啊。。。。。呵呵,,以經(jīng)改正了  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            <2008年2月>
            272829303112
            3456789
            10111213141516
            17181920212223
            2425262728291
            2345678

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久亚洲欧美日本精品| 久久久久亚洲国产| 精品水蜜桃久久久久久久| 精品久久久久久国产三级| 免费一级做a爰片久久毛片潮| 亚洲国产精品综合久久网络| 日韩精品久久久久久免费| 99久久国产热无码精品免费久久久久| 国产精品岛国久久久久| 久久只有这里有精品4| 久久电影网2021| 亚洲国产精品一区二区久久hs| 伊人久久综合热线大杳蕉下载| 无码国内精品久久综合88| 草草久久久无码国产专区| 国内精品久久久久影院优 | 青青草国产精品久久久久| 99久久这里只精品国产免费| 香港aa三级久久三级| 天堂久久天堂AV色综合| 伊人 久久 精品| 日日狠狠久久偷偷色综合0| 国产精久久一区二区三区| 99久久夜色精品国产网站| 天堂无码久久综合东京热| 热久久这里只有精品| 99久久精品午夜一区二区| 国产成人精品久久| 三级三级久久三级久久| 天天影视色香欲综合久久| 久久99精品国产麻豆婷婷| 久久免费线看线看| 久久免费精品一区二区| 久久99国产精一区二区三区| 精品久久久无码人妻中文字幕豆芽| 久久精品国产色蜜蜜麻豆| 国内精品久久久久久久久电影网 | 女人香蕉久久**毛片精品| 久久久精品一区二区三区| 成人免费网站久久久| 国产精品久久久久久久午夜片|