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

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

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

王若

摘要:內存地址對齊,是一種在計算機內存中排列數據、訪問數據的一種方式。當今的計算機在計算機內存中讀寫數據時都是按字(word)大小塊來進行操作的。基本類型數據對齊就是數據在內存中的偏移地址必須等于一個字(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
主站蜘蛛池模板: 国产免费观看av大片的网站| av在线人妻熟妇| 国产精品人莉莉成在线播放| 国产日韩欧美视频| 国产一区亚洲一区| 久久永久视频| 婷婷五月在线| 精品综合久久久久久97超人该| 激情爆乳一区二区| 国产一区二区免费播放| 国产亚洲视频免费播放| 偷拍久久网| 区国产精品搜索视频| 97视频在线观看免费视频| 99热这里只有精品久久免费| 丁香六月激情综合| 青青网在线国产| 一级毛片免费观看不卡视频| 国产在线视频二区| 免费在线国产一区二区三区精品| 欧美色视频日本| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲精品国产成人7777| 国产欧美日韩在线在线不卡视频| 中文字幕永久视频| 国产成人91精品免费网址在线| 99资源在线| 国产色伊人| 国产成人高清亚洲一区久久| 国产清纯在线一区二区WWW| 国产菊爆视频在线观看| 成人午夜视频网站| 国产成人av大片在线播放| 亚洲热线99精品视频| 国产真实乱了在线播放| 四虎亚洲精品| 亚洲天堂久久新| 伊在人亚洲香蕉精品播放| 五月婷婷中文字幕| 极品尤物av美乳在线观看| 激情六月丁香婷婷四房播| 国产区精品高清在线观看| 免费看a毛片| 老司机午夜精品网站在线观看| 久久久精品久久久久三级| 女人一级毛片| 国产日韩精品欧美一区灰| 老司国产精品视频| 国产精品分类视频分类一区| 老司国产精品视频| 成人日韩欧美| 国产成熟女人性满足视频| 亚洲天堂网在线观看视频| 九九热视频在线免费观看| 亚洲va在线观看| 国产国语一级毛片在线视频| 国产精品一区二区不卡的视频| 欧美精品伊人久久| 日韩毛片在线播放| 国产精品免费p区| 在线观看欧美精品二区| 国产99视频精品免费观看9e| 性做久久久久久久免费看| 2048国产精品原创综合在线| 久久综合AV免费观看| 精品国产网| 国产日韩精品欧美一区喷| 国产丝袜91| 国产中文在线亚洲精品官网| 免费人成网站在线高清| 国产噜噜在线视频观看| 日本高清免费不卡视频| 女人一级毛片| 久久视精品| 99热国产这里只有精品9九| 91外围女在线观看| 欧美日在线观看| 久久中文字幕不卡一二区| 久久这里只有精品66| 欧美日本在线观看| 国产美女视频黄a视频全免费网站| 欧美成人一区午夜福利在线|