摘要: 最近在看STL源码剖析这本书,这本书分析的对象是SGI STL。在讲述第二级配置器的实现内容时,有这么一段代码: enum {__ALIGN=8}; size_t ROUND_UP(size_t bytes) //将bytes上调至8的倍数 { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN – 1)); } 毫无疑问,这段代码是非常高效的。仔细分析一下,就会发现这段代码适合用来将所有数上调至2^n的倍数:一个数k如果正好是2^n的倍数,那么用二进制来 表示的话,低n位必定全是0,而_ALIGN-1的二进制表示则是 阅读全文
posted @ 2012-04-22 21:00 kanego 阅读(1558) 评论(1) 推荐(3) 编辑