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

局部名称不应被覆盖

6.1.3 ID_hideLocal
目录 › next › previous

不应在嵌套的作用域中声明相同的名称,否则干扰阅读,极易引起误解。

示例:

int foo() {
    int i = 0;       // Declares an object ‘i’
    if (cond) {
        int i = 1;   // Non-compliant, hides previous ‘i’
        ....
    }
    return i;
}

在一个函数中出现了多个名为 i 的变量,当实际代码较为复杂时,很容易出现意图与实现不符的问题。

参考

CWE-1109 C++ Core Guidelines ES.12 MISRA C 2004 5.2 MISRA C 2012 5.3 MISRA C++ 2008 2-10-2
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.