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

            edog

            冰凍熱狗
            數據加載中……

            #pragma pack和數據對齊問題

            結構數據存放時默認按4對齊,考慮以下程序,輸出結果為:sizeof(A)=12
            typedef struct _A
            {
                
            int x;
                
            char z[7];
            }
            A;

            void main()
            {
                
            int len = sizeof(A);
                printf(
            "sizeof(A)=%d\n", len);    // len = 12
            }


            使用 #pragma pack,設置數據按1對齊,此時輸出結果為:sizeof(A)=11
            #pragma pack(push)
            #pragma pack(
            1)
            typedef 
            struct _A
            {
                
            int x;
                
            char z[7];
            }
            A;
            #pragma pack(pop)

            void main()
            {
                
            int len = sizeof(A);
                printf(
            "sizeof(A)=%d\n", len);    // len = 11
            }

            posted on 2005-12-13 14:36 冰凍熱狗 閱讀(13231) 評論(9)  編輯 收藏 引用 所屬分類: 平臺核心

            評論

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            無意闖入了貴寶地。正好我也有篇關于這個問題的試驗。
            http://blog.vckbase.com/zhangjw_cn/archive/2005/08/09/10701.html
            2005-12-17 14:54 | 清風雨

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            class TestA{int a; char b; char c; short d;};
            class TestB{int a; char b; short d; char c;};

            sizeof(TestA)的值為8,而
            sizeof(TestB)的值為12
            這是為什么? 是不是多byte的數據成員,只能從偶數偏移位置開始存放?
            2007-05-28 16:45 | 偶爾

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            @偶爾
            整數倍的地方開始存放
            2007-08-03 17:38 | 路過

            # re: #pragma pack和數據對齊問題[未登錄]  回復  更多評論   

            short d = 2 , 只能從偶數開始放 ;
            char c = 1 , 可以從 1 的倍數位置開始放 ;
            int a = 4 , 就只好從 4 的倍數位置開始放了啦
            2008-09-27 17:58 | Joe

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            嗯,不錯。正好用上
            2009-04-02 17:38 | 創意產品網

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            你好。。。對這個問題。。


            1 對齊的意思是什么
            2009-04-17 15:14 | 王帥

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            莫非是。。。。。按照4的整數倍分配內存?

            按照1,和按照4對其有什么優缺點沒有。
            2009-04-17 15:16 | 王帥

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            #pragma pack(1)和#pragma pack(3)又有什么區別呢
            為什么一定是1 求解答
            2011-11-06 12:42 | jemmyLiu

            # re: #pragma pack和數據對齊問題  回復  更多評論   

            涉及兩個問題:
            數據結構內部的元素按照各自元素的規則對齊;
            數據結構按照最嚴格的成員的來對齊。
            2011-12-21 15:37 | yaohuaxin
            亚洲成色999久久网站| 久久影视国产亚洲| 九九久久自然熟的香蕉图片| 无码久久精品国产亚洲Av影片| 久久久久久人妻无码| 久久影院亚洲一区| 精品久久久久久国产潘金莲| 久久久精品国产Sm最大网站| 色欲av伊人久久大香线蕉影院| 天天爽天天爽天天片a久久网| 久久久久人妻精品一区三寸蜜桃| 久久亚洲私人国产精品| 一本大道加勒比久久综合| 久久青青草视频| 国产成人综合久久久久久| 香蕉久久夜色精品升级完成| 久久久无码精品亚洲日韩软件| 久久人妻少妇嫩草AV无码专区| 久久伊人五月天论坛| 久久精品国产第一区二区| 国产精品一久久香蕉产线看| 色婷婷综合久久久中文字幕| 亚洲人AV永久一区二区三区久久| 日本一区精品久久久久影院| 久久综合给合久久狠狠狠97色69| 久久久午夜精品| 伊人情人综合成人久久网小说| 国产福利电影一区二区三区,免费久久久久久久精 | 久久99国产综合精品女同| 久久久久香蕉视频| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久天天躁狠狠躁夜夜不卡| 日韩久久无码免费毛片软件| 国内精品久久久久久中文字幕| 狠狠色丁香婷婷综合久久来| 久久久久中文字幕| 久久精品国产99国产精品| 亚洲日韩欧美一区久久久久我| 亚洲国产成人乱码精品女人久久久不卡| 久久天天躁狠狠躁夜夜2020老熟妇| 久久久久国色AV免费观看|