結構對齊的原則

2021-05-27 17:54:00 字數 330 閱讀 8748

結構對齊的原則(未考慮位域)

原則1、資料成員對齊規則:結構(struct或聯合union)的資料成員,第乙個資料成員放在offset為0的地方,以後每個資料成員儲存的起始位置要從該成員大小的整數倍開始(比如int在32位機為4位元組,則要從4的整數倍位址開始儲存)。

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

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

C C 結構體對齊原則

先介紹四個概念 1 資料型別自身的對齊值 基本資料型別的自身對齊值,等於sizeof 基本資料型別 2 指定對齊值 pragma pack value 時的指定對齊值value。3 結構體或者類的自身對齊值 其成員中自身對齊值最大的那個值。4 資料成員 結構體和類的有效對齊值 自身對齊值和指定對齊值...

結構體 位元組對齊原則

一 對齊準則 位元組對齊的細節和具體的編譯器有關,但一般而言,滿足三個準則 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除 結構體每個成員相對於結構體首位址的偏移量都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組 例如上面第二個結構體變數的位址空間。結構體的總大小為結構體最寬基...

資料結構對齊原則

一種資料結構 c語言中聚合資料型別的一類 可以被宣告為變數 陣列 指標等,用以實現比較複雜的資料結構 是一系列元素的集合,這些元素被稱為結構體成員 結構體成員需要用結構體名訪問。struct as1 s1是結構體變數 一般情況下,宣告出現三個部分的兩個部分即可 標誌或者變數可省略 結構體可以包含其他...