编号 | 6.2.3.a |
标题 | 为避免名称冲突,不应该将相同的名称用于不同的标识符。 |
语言 | C |
级别 | 2 |
类别 | 概念 |
规范说明
标识符的重新声明会导致混乱的代码,即使这些标识符属于不同的命名空间。使用相同的名称可能会困惑读者。
int value;
/* ... */
{
float value; /* WRONG: obscures earlier 'value' */
/* ... */
}
/* ... */
注意
gcc 编译器选项 "-Wshadow" 可以检查此规则。这也适用于声明为 typedef 的标识符。