我最近在musl的bsearch实现中遇到了这段代码:

else if (sign < 0)
    nel /= 2;
else {
    base = try;
    nel -= nel/2;
}

nel是一个size_t
nel -= nel/2在功能上是否等同于nel /= 2

最佳答案

您自己的回答是正确的,但对于这段代码,特别是

base = try;

第一批物品已被砍掉,不再作进一步考虑如果你只是在这一点上做了nel/2,而且nel /= 2很奇怪,你也会从进一步的考虑中删掉最后一项,可能会产生假阴性。
请注意,您要查看的代码was recently changed总是切掉在不相等的情况下进行比较的项。

07-26 09:37