c - nel -= nel/2 在功能上是否等同于 nel /= 2?
问题描述
我最近在bsearch
musl 的实现中遇到了这段代码:
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
在这一点上做了,而且nel
很奇怪,你也会从进一步的考虑中删除最后一项,可能会产生假阴性。
请注意,您正在查看的代码最近已更改为始终切断在不相等情况下进行比较的项目。
推荐阅读
- html - 无法将 url 读取为 JSON 数据
- gcc - 有人在 OpenBSD 6.3 上构建过 gcc 8.2.0 吗?
- knockout.js - 表格上的下拉菜单,允许每行仅选择一次项目
- java - Jenkins/Groovy - 对于数组中的每个项目,使用项目中的变量执行 shell 脚本
- mysql - MySQL Count on 按子查询分组
- go - 如何将 io.Reader 变成 io.ReadCloser?
- ios - Mac 上的 Cocoapods 无法安装“找不到有效的 gem 'cocoapods' (>= 0)”
- apache - 如何在 Apache 的 mod_security 模块中设置规则
- ios - 当 iOS 配置文件过期时会发生什么
- web-applications - 关于在 web-app 中计算步行距离的建议