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

断言中的表达式不应恒为真

10.8.1 ID_badAssertion
目录 › next › previous

恒为真的断言是没有意义的。

示例:

void foo(int a[]) {
    assert(sizeof(a));        // Non-compliant
    assert("some comments");  // Non-compliant
}

也不建议使用恒为假的断言表示异常,在 C++ 代码中应改用异常处理的方式。

void bar(int x) {
    if (x < 0) {
        assert(0);  // Bad, use exceptions instead
    }
}

依据

ISO/IEC 9899:1999 7.2 ISO/IEC 9899:2011 7.2
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.