☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

有符号数不应和无符号数比较

10.5.4 ID_inconsistentSignComparison
目录 › next › previous

有符号数和无符号数比较时,有符号数会被转换成无符号数,易产生意料之外的错误。

本规则是 ID_signChangeCast 的特化。

示例:

void foo(signed s, unsigned u) {
    if (s < u) {   // Non-compliant
        ....
    }
}

配置

allowSmallUnsignedTypes: 是否允许 unsigned char、unsigned short 型表达式与 int 及更大取值范围的表达式比较 allowPtrdiffTypeToSizeType: 是否允许 ptrdiff_t 型表达式与 size_t 型表达式比较

相关

ID_signChangeCast

依据

ISO/IEC 9899:1999 6.3.1.3 ISO/IEC 9899:2011 6.3.1.3 ISO/IEC 14882:2003 4.7 ISO/IEC 14882:2011 4.7

参考

C++ Core Guidelines ES.100 MISRA C 2012 10.4 MISRA C++ 2008 5-0-4
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.