什麼是內存對齊
“內存對齊”這個專業名詞應該是學習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變量的大小)?
這裏就是因爲“內存對齊”!
爲什麼要內存對齊
方便讀取數據,減少不必要的操作,