我最近在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总是切掉在不相等的情况下进行比较的项。