青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

T9的空間

You will never walk alone!

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks

轉(zhuǎn)一個來至csdn的帖子

主  題:    探討:內(nèi)存對齊
作  者:    typedef_chen ((名未定)(我要騙人))
等  級:   
信 譽(yù) 值:    100
所屬論壇:    C/C++ C++ 語言
問題點數(shù):    50
回復(fù)次數(shù):    1
發(fā)表時間:    2005-04-02 22:53:27
  
  
朋友帖了如下一段代碼:
#pragma pack(4)
class TestB
{
public:
int aa;
char a;
short b;
char c;
};
int nSize = sizeof(TestB);
這里nSize結(jié)果為12,在預(yù)料之中。

現(xiàn)在去掉第一個成員變量為如下代碼:
#pragma pack(4)
class TestC
{
public:
char a;
short b;
char c;
};
int nSize = sizeof(TestC);
按照正常的填充方式nSize的結(jié)果應(yīng)該是8,為什么結(jié)果顯示nSize為6呢?

事實上,很多人對#pragma pack的理解是錯誤的。
#pragma pack規(guī)定的對齊長度,實際使用的規(guī)則是:
結(jié)構(gòu),聯(lián)合,或者類的數(shù)據(jù)成員,第一個放在偏移為0的地方,以后每個數(shù)據(jù)成員的對齊,按照#pragma pack指定的數(shù)值和這個數(shù)據(jù)成員自身長度中,比較小的那個進(jìn)行。
也就是說,當(dāng)#pragma pack的值等于或超過所有數(shù)據(jù)成員長度的時候,這個值的大小將不產(chǎn)生任何效果。
而結(jié)構(gòu)整體的對齊,則按照結(jié)構(gòu)體中最大的數(shù)據(jù)成員 和 #pragma pack指定值 之間,較小的那個進(jìn)行。

具體解釋
#pragma pack(4)
class TestB
{
public:
int aa; //第一個成員,放在[0,3]偏移的位置,
char a; //第二個成員,自身長為1,#pragma pack(4),取小值,也就是1,所以這個成員按一字節(jié)對齊,放在偏移[4]的位置。
short b; //第三個成員,自身長2,#pragma pack(4),取2,按2字節(jié)對齊,所以放在偏移[6,7]的位置。
char c; //第四個,自身長為1,放在[8]的位置。
};
這個類實際占據(jù)的內(nèi)存空間是9字節(jié)
類之間的對齊,是按照類內(nèi)部最大的成員的長度,和#pragma pack規(guī)定的值之中較小的一個對齊的。
所以這個例子中,類之間對齊的長度是min(sizeof(int),4),也就是4。
9按照4字節(jié)圓整的結(jié)果是12,所以sizeof(TestB)是12。


如果
#pragma pack(2)
     class TestB
{
public:
int aa; //第一個成員,放在[0,3]偏移的位置,
char a; //第二個成員,自身長為1,#pragma pack(4),取小值,也就是1,所以這個成員按一字節(jié)對齊,放在偏移[4]的位置。
short b; //第三個成員,自身長2,#pragma pack(4),取2,按2字節(jié)對齊,所以放在偏移[6,7]的位置。
char c; //第四個,自身長為1,放在[8]的位置。
};
//可以看出,上面的位置完全沒有變化,只是類之間改為按2字節(jié)對齊,9按2圓整的結(jié)果是10。
//所以 sizeof(TestB)是10。

最后看原貼:
現(xiàn)在去掉第一個成員變量為如下代碼:
#pragma pack(4)
class TestC
{
public:
char a;//第一個成員,放在[0]偏移的位置,
short b;//第二個成員,自身長2,#pragma pack(4),取2,按2字節(jié)對齊,所以放在偏移[2,3]的位置。
char c;//第三個,自身長為1,放在[4]的位置。
};
//整個類的大小是5字節(jié),按照min(sizeof(short),4)字節(jié)對齊,也就是2字節(jié)對齊,結(jié)果是6
//所以sizeof(TestC)是6。
posted on 2009-06-02 17:31 Torres 閱讀(253) 評論(0)  編輯 收藏 引用

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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲色图在线视频| 日韩系列在线| 免费在线亚洲| 香蕉视频成人在线观看 | 亚洲国产福利在线| 久久成人精品一区二区三区| 欧美激情国产日韩| 一个色综合导航| 亚洲国产另类精品专区| 一区二区久久| 欧美国产第一页| 欧美在线免费观看亚洲| 欧美日韩国产二区| 在线日韩中文| 久久这里有精品视频| 亚洲私人影院| 欧美久久久久久久久久| 亚洲国产精品成人va在线观看| 亚洲一区在线视频| 亚洲国产一二三| 久久视频在线视频| 国产有码在线一区二区视频| 亚洲欧美视频在线观看| 一区二区av在线| 国产精品久久久一区二区三区| 性色一区二区三区| 久久综合99re88久久爱| 欧美一区二区精美| 国产欧美大片| 午夜在线精品偷拍| 亚洲一区在线看| 国产精品久久久久久久久久久久久 | 欧美系列亚洲系列| 国产午夜精品美女毛片视频| 亚洲免费影视第一页| 久久精品国产一区二区电影| 国产午夜精品福利| 美女诱惑一区| 香蕉久久国产| 国产精品一区二区在线观看网站| 亚洲欧美激情一区| 亚洲毛片播放| 欧美色区777第一页| 亚洲午夜精品国产| 亚洲天堂男人| 国产深夜精品| 老鸭窝91久久精品色噜噜导演| 久久亚洲视频| 日韩亚洲在线| 亚洲一区二区免费视频| 国产亚洲一级| 欧美激情视频一区二区三区在线播放| 欧美成人日韩| 亚洲欧美日韩爽爽影院| 久久黄色小说| 久久精品国产久精国产爱| 国产精品人人爽人人做我的可爱 | 中文欧美字幕免费| 亚洲一区三区电影在线观看| 国产色视频一区| 女女同性精品视频| 欧美日韩在线观看一区二区三区 | 国产亚洲精久久久久久| 欧美激情精品久久久久久变态| 在线播放日韩| 欧美3dxxxxhd| 欧美日韩一区二区欧美激情| 久久成人精品无人区| 欧美成人精品在线视频| 亚洲综合色在线| 久久男女视频| 亚洲视频福利| 久久久久久久高潮| 一片黄亚洲嫩模| 久久精品国产精品| 一区二区三区视频免费在线观看| 亚洲欧美国产另类| 亚洲每日在线| 久久久久久久波多野高潮日日| 欧美三级在线视频| 久久久久久久一区二区| 欧美精品久久久久久久久久| 男女精品视频| 国产区在线观看成人精品| 一区二区三区产品免费精品久久75 | 欧美激情一级片一区二区| 久久九九国产精品| 国产精品一区二区黑丝| 亚洲日本欧美日韩高观看| 在线看欧美视频| 亚洲视频1区| 久久成人免费电影| 亚洲欧美在线一区二区| 久久精品国产免费看久久精品| 亚洲一区国产精品| 久久精品国产一区二区三区| 国产精品欧美日韩| 久久人人看视频| 欧美日韩亚洲免费| 久久激情视频久久| 国产乱理伦片在线观看夜一区| 毛片av中文字幕一区二区| 国产精品一区在线观看你懂的| 亚洲第一精品电影| 国内成+人亚洲+欧美+综合在线| 亚洲网站在线观看| 午夜精品在线| 国产欧美91| 久久国产夜色精品鲁鲁99| 欧美在线国产| 国产欧美亚洲视频| 亚洲一区二区在线免费观看| 亚洲午夜精品久久久久久app| 欧美日韩午夜激情| 亚洲欧洲另类国产综合| 亚洲日本在线观看| 欧美黄色aaaa| 亚洲欧洲一区| 亚洲最新视频在线| 欧美区日韩区| 亚洲久久成人| 亚洲欧美日韩综合aⅴ视频| 国产精品久久久久秋霞鲁丝 | 久久久久久久久久久成人| 国产欧美亚洲精品| 亚洲美女区一区| 亚洲国产小视频| 久久精品视频免费播放| 欧美在线播放一区| 国产欧美亚洲日本| 午夜久久福利| 亚洲资源在线观看| 国产精品裸体一区二区三区| 99香蕉国产精品偷在线观看| 亚洲一区二区四区| 国产精品video| 日韩系列欧美系列| 中文久久精品| 欧美午夜视频在线| 一区二区三区高清不卡| 一区二区三区视频在线播放| 国产精品一区二区三区成人| 久久在精品线影院精品国产| 极品尤物av久久免费看| 男女视频一区二区| 香蕉久久a毛片| 久久亚洲国产精品日日av夜夜| 亚洲日本激情| 亚洲永久精品大片| 久久天天躁狠狠躁夜夜爽蜜月| 日韩视频在线免费| 国产精品久久久久久久久久久久久 | 黄色一区二区在线| 欧美日韩精品一区| 久久综合久色欧美综合狠狠| 亚洲精品乱码久久久久久蜜桃91| 久久嫩草精品久久久精品| 99这里只有久久精品视频| 国产欧美一区二区三区在线老狼| 美女视频黄免费的久久| 国产精品99久久久久久久女警 | 亚洲主播在线观看| 亚洲国产成人精品久久| 欧美亚洲色图校园春色| 91久久国产综合久久蜜月精品| 国产精品magnet| 欧美福利一区二区| 久久国产一区二区| 亚洲一区二区三区精品在线观看 | 欧美在线欧美在线| 妖精成人www高清在线观看| 国产一区二区精品丝袜| 欧美日韩一卡| 欧美91大片| 久久久xxx| 久久超碰97中文字幕| 国产精品99久久不卡二区| 亚洲电影免费观看高清完整版在线观看 | 日韩视频一区二区| 国产在线播精品第三| 国产伦精品一区二区三区视频孕妇 | 亚洲欧美成人一区二区三区| 亚洲精品裸体| 国产精品美女一区二区在线观看| 欧美大片免费| 欧美成人一区二区| 麻豆精品传媒视频| 欧美在线欧美在线| 午夜精品久久久久久久99樱桃 | 国产精品国产a| 欧美日韩在线不卡一区| 欧美精品一二三| 欧美成人午夜免费视在线看片| 久久久之久亚州精品露出| 久久av最新网址| 性色av一区二区三区红粉影视| 亚洲欧美日韩精品久久久| 亚洲亚洲精品在线观看 | 好吊一区二区三区| 欧美大色视频|