在进行内存分配的时候一般都需要在实际使用内存大小的基础上进行内存对齐,比如一般32位平台进行4字节对齐,而64位平台使用8字节对齐等等。
一般采用的算法是先利用公式
然后根据这个值乘以b即可得到对应的对齐值
公式推导
从上面可以得出
而针对int(
从上面的推导来看二者的值完全相同所以可以得出结论
所以当我们对A字节的内存进行B字节的对齐时可以使用公式
补充
其实还有一个算法
long(A + B - 1) &~ (B - 1)
也可以计算,但是我没有弄清楚它的原理是什么,暂时不管先记住再说^_^