1. 对齐到alignment的倍数,返回不小于value的最小值,要求alignment必须是2的倍数
std::size_t align_up(std::size_t value, std::size_t alignment)
{
return (value + alignment - 1) & ~(alignment - 1);
}
2. 对齐到alignment的倍数,返回不大于value的最大值,要求alignment必须是2的倍数
inline std::size_t align_down(std::size_t value, std::size_t alignment)
{
return value & ~(alignment - 1);
}