MISRA C++:2023 Rule 6.4.1
A variable declared in an inner scope shall not hide a variable declared in an outer scope
自 R2024b 起
描述
A variable declared in an inner scope shall not hide a variable declared in an outer scope. 1
理由
当两个同名变量分别存在于内部作用域和外部作用域时,对该变量名的任何引用都会使用内部作用域中的变量。但是,开发人员或评审可能会错误地认为使用了外部作用域中的变量。
Polyspace 实现
当一个变量隐藏了外部作用域中同名的另一个变量时,规则检查项会报告违规。例如,如果局部变量与全局变量同名,则局部变量在其生命周期内会隐藏全局变量。
针对一个变量的声明报告了违规,并且违规结果详细信息中的事件列表显示了另一个变量的声明。
故障排除
如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示。
示例
检查信息
| 组:基本概念 |
| 类别:必需 |
PQL 名称:std.misra_cpp_2023.R6_4_1 |
版本历史记录
在 R2024b 中推出
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.