有点像挤压袋子里水,水就会朝向有空隙的方向对齐。
首先,对齐永远是小的对齐大的数据类型
比如 结构体类型中,不同数据类型的成员变量的 位置不同,导致的对齐方式也有不同。这个点暂记于此
#include <iostream>
using namespace std;
struct {
bool n;
long year;
int bb;
} s;
int main() {
int *p;
int i;
cout<<sizeof(s);
return 0;
}
和下面的代码是不一样的
#include <iostream>
using namespace std;
struct {
long year;
bool n;
int bb;
} s;
int main() {
int *p;
int i;
cout<<sizeof(s);
return 0;
}
有空再整理
可以学习的链接:
http://blog.youkuaiyun.com/u013479704/article/details/38958011
http://blog.youkuaiyun.com/hobertony_7/article/details/45042927