• <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é)對齊

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

              struct s1{
              short a;
              long b;
              };

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

              #pragma pack()

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

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

            short占兩個字節(jié)后當(dāng)前地址為2 long為四字節(jié)。可以被整除2 所以不用添字節(jié)
            所以  sizeof(s1) = 6                            算錯了


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

            重新修正為

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

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



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

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

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

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

            評論

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

            這個答案對嗎?sizeof(s1)=6?  回復(fù)  更多評論   

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

            啊。。對不起。。。看了一下。。。錯了。。。Sorry啊。。。。。呵呵,,以經(jīng)改正了  回復(fù)  更多評論   


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


            <2009年5月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(3)

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            Xx性欧美肥妇精品久久久久久| 精品国产青草久久久久福利| 国产激情久久久久久熟女老人| 久久婷婷五月综合97色 | 伊人久久大香线蕉精品不卡| 亚洲国产另类久久久精品| 久久se精品一区二区影院| 青青草原综合久久大伊人导航| 精品永久久福利一区二区 | 久久亚洲国产最新网站| 夜夜亚洲天天久久| 狠狠色婷婷综合天天久久丁香 | 人人妻久久人人澡人人爽人人精品| 久久精品国产福利国产秒| 久久人人爽人人精品视频| 国产成人精品久久亚洲高清不卡 | 欧美粉嫩小泬久久久久久久 | 中文字幕精品无码久久久久久3D日动漫 | 久久精品国产亚洲网站| 国产香蕉久久精品综合网| 久久精品国产69国产精品亚洲| 久久久久久久久66精品片| 99久久超碰中文字幕伊人| 中文字幕久久精品无码| 久久se精品一区精品二区国产| 99久久无码一区人妻a黑| 午夜精品久久影院蜜桃| 中文字幕亚洲综合久久2| 亚洲AV无一区二区三区久久| 日日狠狠久久偷偷色综合免费| 麻豆精品久久久一区二区| 91久久精品视频| 99国产欧美精品久久久蜜芽| 久久婷婷人人澡人人| 91久久精品国产免费直播| 久久精品国产亚洲一区二区| 色诱久久久久综合网ywww| 久久久久亚洲精品天堂| 精品久久久久久国产潘金莲| 久久综合狠狠综合久久综合88| 亚洲成色WWW久久网站|