關於資料對齊和儲存器讀寫

2021-05-24 03:25:47 字數 574 閱讀 9019

資料對齊是跟資料在記憶體中的位置相關的話題。如果乙個變數的記憶體位址正好是他長度的整數倍,那麼它就叫做自然對齊。

舉例來說,乙個32位的整型資料,如果他在記憶體中的位址剛好可以被4整除,我們就說這個整型數是自然對齊的。

在編譯過程中,可以通過編譯器來調整資料對齊。

一般在預設情況下,對於標準資料型別來說,它的位址只要是其長度的整數倍就對齊了,而對於費標準的c資料型別按照下面的原則對齊。

1.對於陣列,只要按照基本資料型別進行對齊就可以了

2.對於聯合,只要他包含的長度最大的資料型別能夠對齊就可以了

3.對於結構體,只要它包含的長度最大的資料型別能夠對齊就可以了。

結構體還會引入填補機制。填補因對齊我形成的空洞。

對於未對齊的資料結構,一些體系結構要求非常嚴格。在這種處理器中,訪問未對齊的資料會導致處理器陷入,而另外一些處理器,則會導致未定義錯誤,比如arm它將會調整位址為對齊之後再讀寫,而在另外一些體系結構上,則可以正常讀寫資料,只是效能會下降。

比如在x86體系的pc上,讀乙個對齊的int,他會一次讀32位。

而對於未對齊的int,他會讀兩次,每次讀32位,然後再計算出要讀取的資料。

資料對齊儲存

目錄 計算機裡面記憶體的資料儲存結構以及為什麼要邊界對齊 行邊界儲存 結構的儲存分配規則 資料的大小端問題 參考文獻 計算機裡面的從主存的是有乙個個基本的儲存單元構成了,每個儲存單元儲存的二進位制數叫做儲存字長 目前一般的儲存字長都是64位。同時計算機的主存都是按照位元組編址,同時一般來說計算機的c...

關於讀寫儲存本地檔案

關於讀寫儲存本地檔案 將資料寫入到檔案 return 是否寫入成功 bool writetofile nsstring doc nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes lastobjec...

關於儲存器

查了好多資料 進行乙個小的總結,侵刪 儲存器這個名詞包含的範圍很大,它幾乎涵蓋了所有關於儲存的範疇。暫存器 記憶體 外儲存器都是儲存器裡面的一種。凡是有儲存能力的硬體,都可以稱之為儲存器。快取就是資料交換的緩衝區 稱作cache 硬體系統需要讀取資料時,會首先從快取中查詢需要的資料,如果找到了則直接...