本文共 457 字,大约阅读时间需要 1 分钟。
内存对齐的主要目的是为了减少cpu寻址的次数。
我们先来了解一下内存对齐的规则: 所定义变量的初始地址是该变量类型所占字节的整数倍。 比如int类型的变量,它的起始地址一定是4的整数倍,0,4,8等。 short 类型的变量的起始地址是2的整数倍,0,2,4,6,8等。来看一个例子。
//64bit#include#include using namespace std;struct node{ char a; int b; double c; char f; short d; int e;};int main(){ cout< <
在这个结构体中内存分配是这样的,一共占了24个字节。
这样我们cpu要找到b的地址,只需寻址4-7一次就ok。 假如内存不对齐 我们cpu就要先寻址0-3,留下1-3,然后寻址4-7,留下4,然后再把1-3和4 拼凑在一起,需要俩次寻址。 到此对内存对齐大家应该都理解了吧。转载地址:http://cgfkb.baihongyu.com/