999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

結構體數據對齊方法的研究

2017-05-19 12:34:31王若
未來英才 2017年7期
關鍵詞:計算機結構

王若

摘要:內存地址對齊,是一種在計算機內存中排列數據、訪問數據的一種方式。當今的計算機在計算機內存中讀寫數據時都是按字(word)大小塊來進行操作的?;绢愋蛿祿R就是數據在內存中的偏移地址必須等于一個字(word)的倍數,按這種存儲數據的方式,可以提升系統在讀取數據時的性能。有時候為了對齊數據,可能必須在上一個數據結束和下一個數據開始的地方插入一些沒有用處字節,這就是結構體數據對齊。

關鍵詞:結構;數據

一、假設計算機的字大小為4個字節,因此變量在內存中的首地址都是滿足4地址對齊,CPU只能對4的倍數的地址進行讀取,而每次能讀取4個字節大小的數據

假設有一個整型的數據a的首地址不是4的倍數,因此想讀取a的數據,CPU要進行兩次內存讀取,而且還要對兩次讀取的數據進行處理才能得到a的數據,而一個程序的瓶頸往往不是CPU的速度,而是取決于內存的帶寬,因為CPU得處理速度要遠大于從內存中讀取數據的速度,因此減少對內存空間的訪問是提高程序性能的關鍵[1]。從上例可以看出,采取內存地址對齊策略是提高程序性能的關鍵。

二、結構體默認的規則

本文所述的環境均是在32位編譯器的編譯環境中,一般編譯器默認對齊方式是4字節。

總結結構體的數據對齊方式滿足條件:

1、結構體變量的首地址能夠被其最寬基本類型成員的大小所整除。2、結構體每個成員相對于結構體首地址的偏移量(offset)都是成員自身大小的整數倍,如有需要編譯器會在成員之間加上填充字節。3、結構體的總大小為結構體最寬基本類型成員大小的整數倍,如有需要編譯器會在最末一個成員之后加上填充字節。

三、手動對齊方式

如果編譯器自動實現結構體對齊,我們就稱為自動對齊,與之相反,使用#pragma進行對齊的就是手動對齊。

#pragma備用告訴編譯器,程序員自己希望的對齊方式。比如,雖然編譯器的默認對齊方式是4,但是如果我們不希望按照4對齊,而是希望是8,這個時候就必須使用#pragma進行手動對齊了。

常用的設置手動對齊的命令有兩種:第一種是#pragmapack(),這種就是設置編譯器1字節對齊,不過也可以認為是設置為不對齊或者取消對齊;第二種是

#pragmapack(4),這個括號中的數字表示希望以多少字節進行對齊。

我們需要#prgamapack(n)開頭,以#pragmapack()結尾,定義一個區間,這個區間內的對齊參數就是n。

舉例說明

(一)自動對齊方式或者是默認4字節對齊

分析代碼:根據基本數據類型對齊規則可知,c(字節),i(4字節),d(8字節),b(2字節)。是不是結果就是1+4+8+2呢?很明顯不是,c是首元素,不需要對齊,但是后面的就需要對齊了,i是4字節,但是它的起始偏移量只有1字節,不能整除4,因此就在c后面再加3個字節,當遇到d時,由于之前的偏移量就是8,所以不需要偏移,在b之前有16字節,這時也不需要偏移就是直接加上2。所以最后結果就是1+3+4+8+2=20,對不對呢?其實是不對的,因為18不是默認對齊4的整數倍,還需要在后面補充2字節。一共就是20字節。

分析:該結果就是24字節,分析同上,但是在最后一步不一樣,對齊是8字節,所以在b后面還需要添加6字節。最終結果就是24.

四、結語

需要字節對齊的根本原因在于CPU訪問數據的效率問題。因為計算機可以處理數據位數都是確定的,這時候就說明它一次性只能處理確定位數的數據,但是當認為造成該數據不在計算機一次性可訪問的范圍內的時候,計算機就會按照一定的優化方法來處理,這樣是更加方便和快捷的處理數據。也就是強制的要求一來簡化了處理器與內存之間傳輸系統的設計,二來可以提升讀取數據的速度。

參考文獻

[1] 陳榮,蔡志勇,胡保安. 基于嵌入式操作系統VxWorks數據采集系統軟件設計[J]. 科技廣場,2005,(06):82-84.

猜你喜歡
計算機結構
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
論《日出》的結構
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 尤物在线观看乱码| 91九色最新地址| 免费看美女自慰的网站| 永久成人无码激情视频免费| 成人噜噜噜视频在线观看| 免费在线色| 青草娱乐极品免费视频| 日本在线视频免费| 视频在线观看一区二区| 亚洲—日韩aV在线| 一级一级一片免费| 亚洲无码在线午夜电影| 老司机精品一区在线视频| 国产精品自在自线免费观看| 91精品小视频| 国产精品亚欧美一区二区| 天天综合色天天综合网| 久热精品免费| 欧美精品影院| 夜夜操天天摸| 2019国产在线| 玩两个丰满老熟女久久网| 亚洲婷婷在线视频| 2020极品精品国产| 黄色网站在线观看无码| 国产成人超碰无码| 亚洲国产亚洲综合在线尤物| 亚洲乱码在线播放| 超清无码一区二区三区| 国产亚洲视频中文字幕视频| 99热6这里只有精品| 91亚洲国产视频| 久久久精品国产亚洲AV日韩| 99re在线视频观看| 婷婷久久综合九色综合88| 被公侵犯人妻少妇一区二区三区| a毛片免费在线观看| 中文字幕在线观看日本| 国内黄色精品| 97视频免费看| 久久精品亚洲中文字幕乱码| 97久久免费视频| 亚洲中文无码av永久伊人| 老熟妇喷水一区二区三区| 99精品国产电影| 国产精品高清国产三级囯产AV| 四虎永久在线| 97精品国产高清久久久久蜜芽| 五月天在线网站| 亚洲a免费| 国产91视频免费| swag国产精品| 国产成人在线小视频| 免费国产在线精品一区| 亚洲一区黄色| 国内嫩模私拍精品视频| 色综合五月| 一级看片免费视频| 国产在线自在拍91精品黑人| 亚洲成年人网| 国产丝袜一区二区三区视频免下载| 一级在线毛片| 国产主播喷水| 亚洲成A人V欧美综合天堂| 亚洲黄色网站视频| 亚洲区第一页| 亚洲中文字幕无码爆乳| 国产欧美日韩另类| 午夜a级毛片| 无码一区二区三区视频在线播放| 九色免费视频| 亚洲综合第一页| 一级毛片在线免费视频| av尤物免费在线观看| 日韩黄色在线| 国产精品欧美亚洲韩国日本不卡| 婷婷99视频精品全部在线观看| 狼友av永久网站免费观看| 无遮挡一级毛片呦女视频| av午夜福利一片免费看| 欧洲精品视频在线观看| 国产又粗又猛又爽视频|