发送零给函数luaO_ceillog2是否是一个bug?

我正在阅读版本为5.3的lua源代码,并发现lobject.c文件中的函数int luaO_ceillog2 (unsigned int x)在处理0时没有进行特殊讨论。当0传递给这个函数时,它会返回32。这是一个bug吗?我感到困惑。

点赞
用户1009479
用户1009479

luaO_ceillog2 是一个只在内部使用的函数。它的名称暗示它计算其参数的 log2ceil(不小于该值的最大整数)。

从数学上讲,对于正数 xlogbx 才是有效的。因此,0 不是该函数的有效参数,我不认为这算作一个 bug。

2015-05-25 07:55:29