亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

內存對齊的目的

內存對齊的目的

內存對齊的目的誠然,我不明白。假設您有一個內存,內存字長度為1字節。為什么不能訪問未對齊地址上的單個內存訪問中的一個4字節長的變量(即不能被4整除),就像對齊地址的情況一樣?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

你可以用一些處理器(尼哈倫人能做到這一點),但是以前所有的內存訪問都是在64位(或32位)線上對齊的,因為總線是64位寬的,所以您必須一次取64位,并且用對齊的64位“塊”來獲取這些數據要容易得多。

所以,如果你想要一個字節,你取了64位塊,然后屏蔽掉你不想要的比特。如果您的字節位于正確的一端,那么簡單且快速,但是如果它位于64位塊的中間,則必須屏蔽不需要的位,然后將數據轉移到正確的位置。更糟糕的是,如果您想要一個2字節變量,但它被分割成兩個塊,那么這就需要雙倍于所需的內存訪問。

因此,當每個人都認為內存很便宜時,他們只是讓編譯器將數據對齊在處理器的塊大小上,這樣您的代碼就會以浪費內存為代價,運行得更快、效率更高。


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 819 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號