【學習筆記】——內存對齊

什麼是內存對齊

“內存對齊”這個專業名詞應該是學習C語言的時候,結構體這節提到的知識。
常出現的問題是給你一個結構體,問你它所佔的內存空間。如下面的代碼中,struct_var變量的大小是多少?

//32位系統
#include<stdio.h>
struct{
    int x;
    char y;
}struct_var;

int main()
{
    printf("%d\n",sizeof(struct_var);  // 輸出8
    return 0;
}

答案是8個字節,爲什麼不是4字節(32爲系統中int變量的大小)+1字節(char變量的大小)?
這裏就是因爲“內存對齊”!

爲什麼要內存對齊

方便讀取數據,減少不必要的操作,
在這裏插入圖片描述
在這裏插入圖片描述

參考

-C/C++內存對齊詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章