CodeQL 文档

奇偶性检查错误

ID: cpp/incomplete-parity-check
Kind: problem
Security severity: 
Severity: warning
Precision: medium
Tags:
   - reliability
   - correctness
   - types
Query suites:
   - cpp-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

此规则会查找使用 x % 2 == 1 检查数字 x 是否为奇数的代码,此方法不适用于负数。将 % 应用于负数会产生负的结果。例如,(-5) % 2 等于 -1,而不是 1。因此,此检查会错误地将所有负数视为偶数。

建议

建议使用 x % 2 != 0(x & 1) == 1 代替。

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私