http://www.cnblogs.com/hustcat/archive/2009/05/14/1456477.html
以下的内容转载自 http://www.cnblogs.com/hustcat/archive/2009/05/14/1456477.html
但是其思想出自于 SGI STL 内存管理
字节对齐是在分配内存时需要考虑的问题,两个小算法:
(1)最容易想到的算法:
unsigned int calc_align(unsigned int n,unsigned align)
{
if ( n / align * align == n)
return n;
return (n / align + 1) * align;
}
//SGI STL使用这个函数来上调每块内存都是8的倍数
(2)更好的算法:
unsigned int calc_align(unsigned int n,unsigned align)
{
return ((n + align - 1) & (~(align - 1)));
}