struct 結構體內存對齊方式

2021-06-08 13:43:53 字數 484 閱讀 3820

以下都以32位機器為例分析結構體型別的變數在記憶體裡的儲存: 一、

1. 結構體變數的儲存位置都是在記憶體中尋找位址是該變數自身大小整數倍開始儲存的。

2. 結構體型別變數的總大小應是該型別成員中最大資料型別的整數倍。

就此兩點,可以解決所有問題, 對於第一條,應該注意每一位成員存放的首位址定為自身的整數倍。

例子如下:

struct xs;

該型別的變數占用的儲存空間大小32位元組,

二、對於任何指標型別的變數,其占用的大小都為4位元組

三、結構體中巢狀結構體,對於該巢狀結構體的對齊應以該巢狀結構體裡最大的資料型別為對齊方式。

例子如下:

struct x ;

struct y ;

sizeof(x) 為16, sizeof(24).

關於結構體內存對齊方式

結構體的對齊方式必須是程式設計師所了解的,關於記憶體對齊方式的優點和部分知識可以參閱http www.ibm.com developerworks library pa dalign 結構體占用的儲存空間 struct sizeof 概要 結構體所占用的空間只可能是 1,2,4,6,8.結構體的記憶...

結構體內存對齊

結構體內存對齊 一 什麼是位元組對齊,為什麼要對齊?現代計算機中記憶體空間都是按照byte劃分的,從理論上講似乎對任何型別的變數的訪問可以從任何位址開始,但實際情況是在訪問特定型別變數的時候經常在特 定的記憶體位址訪問,這就需要各種型別資料按照一定的規則在空間上排列,而不是順序的乙個接乙個的排放,這...

結構體內存對齊

一 什麼是位元組對齊,為什麼要對齊?現代計算機中記憶體空間都是按照byte劃分的,從理論上講似乎對任何型別的變數的訪問可以從任何位址開始,但實際情況是在訪問特定型別變數的時候經常在特 定的記憶體位址訪問,這就需要各種型別資料按照一定的規則在空間上排列,而不是順序的乙個接乙個的排放,這就是對齊。對齊的...