什么是内存对齐
“内存对齐”这个专业名词应该是学习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变量的大小)?
这里就是因为“内存对齐”!
为什么要内存对齐
方便读取数据,减少不必要的操作,