bugprone-suspicious-memory-comparison¶
根据参数的属性查找对 memcmp()
的潜在不正确调用。以下情况已涵盖
情况 1:非标准布局类型
比较非标准布局对象的表示可能无法正确比较值表示。
情况 2:没有唯一对象表示的类型
具有相同值的可能会没有相同的对象表示。这可能是由于填充或浮点类型引起的。
另请参阅:EXP42-C. 不要比较填充数据 和 FLP37-C. 不要使用对象表示来比较浮点值
此检查还与 CERT C++ 编码标准规则相关联并部分重叠,这些规则是 OOP57-CPP. 优先使用特殊成员函数和重载运算符而不是 C 标准库函数 和 EXP62-CPP. 不要访问不是对象值表示的一部分的对象表示的位
cert-exp42-c 作为此检查的别名重定向到此处。