亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

5分鐘教你搞定內存字節對齊

2020-02-24 14:27:34
字體:
來源:轉載
供稿:網友

內存對齊不僅是效率問題,而且是內存未對齊問題,在某些情況下,程序根本無法正常運行,今天武林技術頻道小編為大家帶來5分鐘教你搞定內存字節對齊,下面就跟著武林技術頻道小編來看看吧!

/******************************分割線

如果體系結構是不對齊的,A中的成員將會一個挨一個存儲,從而sizeof(a)為11。顯然對齊更浪費了空間。那么為什么要使用對齊呢?

體系結構的對齊和不對齊,是在時間和空間上的一個權衡。對齊節省了時間。假設一個體系結構的字長為w,那么它同時就假設了在這種體系結構上對寬度為w的數據的處理最頻繁也是最重要的。它的設計也是從優先提高對w位數據操作的效率來考慮的。比如說讀寫時.............此處省略50萬字

*******************************************************/

上面是你隨便google一下,人家就可以跟你解釋的,一大堆的道理,我們沒怎么多時間,討論為何要對齊.直入主題,怎么判斷內存對齊規則,sizeof的結果怎么來的,請牢記以下3條原則:(在沒有#pragma pack宏的情況下,務必看完最后一行)

1:數據成員對齊規則:結構(struct)(或聯合(union))的數據成員,第一個數據成員放在offset為0的地方,以后每個數據成員存儲的起始位置要從該成員大小或者成員的子成員大小(只要該成員有子成員,比如說是數組,結構體等)的整數倍開始(比如int在32位機為4字節,則要從4的整數倍地址開始存儲。

2:結構體作為成員:如果一個結構里有某些結構體成員,則結構體成員要從其內部最大元素大小的整數倍地址開始存儲.(struct a里存有struct b,b里有char,int ,double等元素,那b應該從8的整數倍開始存儲.)

3:收尾工作:結構體的總大小,也就是sizeof的結果,.必須是其內部最大成員的整數倍.不足的要補齊.

等你看完此3條原則,2分鐘已經過去,抓緊時間,實戰3分鐘:
?

?

typedef struct bb
{
?int id;???????????? //[0]....[3]
?double weight;????? //[8].....[15]      原則1
?float height;????? //[16]..[19],總長要為8的整數倍,補齊[20]...[23]     原則3
}BB;

?

typedef struct aa
{
?char name[2];???? //[0],[1]
?int? id;???????? //[4]...[7]          原則1

?double score;???? //[8]....[15]    
?short grade;??? //[16],[17]        
?BB b;???????????? //[24]......[47]          原則2
}AA;

int main()
{
? AA a;
? cout<<sizeof(a)<<" "<<sizeof(BB)<<endl;
? return 0;
}


結果是

?

48 24
ok,上面的全看明白了,內存對齊基本過關.

再講講#pragma pack().

在代碼前加一句#pragma pack(1),你會很高興的發現,上面的代碼輸出為

32 16
bb是4+8+4=16,aa是2+4+8+2+16=32;

這不是理想中的沒有內存對齊的世界嗎.沒錯,#pragma pack(1),告訴編譯器,所有的對齊都按照1的整數倍對齊,換句話說就是沒有對齊規則.

明白了不?

那#pragma pack(2)的結果又是多少呢?對不起,5分鐘到了,自己去測試吧.

ps:Vc,Vs等編譯器默認是#pragma pack(8),所以測試我們的規則會正常;注意gcc默認是#pragma pack(4),并且gcc只支持1,2,4對齊。套用三原則里計算的對齊值是不能大于#pragma pack指定的n值。

以上就是關于5分鐘教你搞定內存字節對齊的知識,相信大家在讀完后對這方面知識都有了更深的了解,如果你還想了解更多的相關信息,建議繼續關注武林技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产中文精品字幕自在自线| 欧美韩国理论所午夜片917电影| 国产精品成人av性教育| 欧美精品免费在线| 国产精品一区二区三区免费视频| y97精品国产97久久久久久| 日日噜噜噜夜夜爽亚洲精品| 亚洲一区二区三区毛片| 欧美激情亚洲精品| 欧美大片在线免费观看| 亚洲精品国产精品国产自| 日韩成人av网址| 欧美精品18videos性欧| 91中文字幕一区| 日韩欧美亚洲范冰冰与中字| 在线观看国产成人av片| 伊人激情综合网| 国产亚洲美女久久| 日韩欧美亚洲成人| 欧美成人免费网| 国产精品白丝jk喷水视频一区| 在线国产精品播放| 尤物yw午夜国产精品视频| 亚洲男人天天操| 日韩激情av在线免费观看| 91国语精品自产拍在线观看性色| 国产美女被下药99| 中文一区二区视频| 亚洲韩国日本中文字幕| 91美女福利视频高清| 亚洲成人黄色在线观看| 亚洲人永久免费| 97色在线播放视频| 欧美成人免费va影院高清| 亚洲精品一区二区网址| 亚洲精品久久久久中文字幕欢迎你| 一区二区三区亚洲| 视频在线一区二区| 91禁国产网站| 亚洲缚视频在线观看| 国产日韩在线观看av| 欧美大片在线影院| 国产精品色婷婷视频| 久久久www成人免费精品张筱雨| 亚洲国产精品推荐| 亚洲欧美资源在线| 日韩精品一区二区视频| 日韩在线资源网| 欧美韩国理论所午夜片917电影| 亚洲精品国产成人| 亚洲天堂精品在线| 亚洲欧洲免费视频| 2025国产精品视频| 亚洲欧美变态国产另类| 亚洲成人黄色在线观看| 国产91精品久久久| 国产丝袜一区二区三区免费视频| 久久手机免费视频| 久久视频免费在线播放| 91伊人影院在线播放| 国产亚洲精品久久久久久777| 57pao成人永久免费视频| 亚洲天堂av在线播放| 欧美性xxxxx| 亲子乱一区二区三区电影| 国产精品久久久久91| 亚洲福利精品在线| 亚洲最新在线视频| 久久伊人色综合| 7m第一福利500精品视频| 国产成人精品在线播放| 久久五月天综合| 国内伊人久久久久久网站视频| 欧美性视频网站| 日韩在线免费av| 久久伊人色综合| 性欧美办公室18xxxxhd| 国产精品久久av| 国产精品高潮呻吟久久av黑人| 国产精品久久久久久久久久久新郎| 亚洲人成网站免费播放| 日韩中文字幕视频在线观看| 一区二区三区视频免费在线观看| 国产精品极品美女在线观看免费| 久久激情视频免费观看| 色青青草原桃花久久综合| 国产91精品久久久久久久| 欧美日韩国产中字| 日韩高清电影好看的电视剧电影| 欧美日产国产成人免费图片| 97精品在线视频| 亚洲欧美激情精品一区二区| 欧美精品18videos性欧美| 久久九九全国免费精品观看| 欧美国产极速在线| 91精品久久久久久久久久| 中文国产成人精品| 国产一区二区三区免费视频| 国产亚洲精品久久久优势| 精品国产一区二区三区四区在线观看| 欧美精品videossex性护士| 91成人国产在线观看| 亚洲aⅴ男人的天堂在线观看| 麻豆乱码国产一区二区三区| 色久欧美在线视频观看| 国内精品久久久| 久久久天堂国产精品女人| 亚洲成人性视频| 国产欧美一区二区三区久久| 成人黄色生活片| 色黄久久久久久| 91av在线影院| 欧美一级高清免费| 欧美日韩国产综合视频在线观看中文| 国产日韩欧美电影在线观看| 成人激情在线播放| 欧美国产视频一区二区| 91精品在线观| 欧美激情极品视频| 成人在线国产精品| 日韩在线视频二区| 欧美日韩国产综合新一区| 国产精品久久久久久久久久三级| 久久久中精品2020中文| 欧洲美女免费图片一区| 97在线观看视频| 伊人亚洲福利一区二区三区| 欧美日韩精品在线播放| 91黄色8090| 色爱精品视频一区| 日韩电影免费观看在线观看| 久久精品美女视频网站| 久久久精品中文字幕| 久久天天躁狠狠躁夜夜躁| 亚洲自拍偷拍一区| 日本一区二区在线免费播放| 日韩高清中文字幕| 欧美激情精品久久久久久久变态| 亚洲精品成人av| 欧美激情在线观看视频| 欧美成人精品激情在线观看| 国内精品久久久久久中文字幕| 亚洲第一网站免费视频| 欧美一性一乱一交一视频| 成人xvideos免费视频| 狠狠色狠色综合曰曰| 欧美日韩亚洲精品一区二区三区| 亚洲自拍小视频| 国产91色在线|| 欧美激情网站在线观看| 欧美激情在线有限公司| 日韩视频一区在线| 久久夜精品va视频免费观看| 色悠久久久久综合先锋影音下载| 国产精品高潮呻吟久久av无限| 日韩毛片在线观看| 国产一区二区三区在线观看网站| 成人免费网站在线观看| 久久青草精品视频免费观看| 亚洲精品一区中文| 亚洲最大的成人网| 成人午夜在线视频一区| 91久久精品久久国产性色也91| 欧美中文字幕第一页|