是否有 GCC 标志发出有关作用域内相同变量重新定义的警告?
Is there a GCC flag to emit warning about identical variable redefinition inside scope?
如所见here,以下是有效的 C 代码:
int test = 10;
if (true) {
int test = 10;
}
我想知道在重新定义相同的情况下是否有警告标志。
有:-Wshadow=local
。传递不同的值(而不是 "local")还可以更精确地控制哪些标识符可以隐藏,哪些不能隐藏。
它检查名称是否相同,这是一个足够好的近似值。
-Wshadow
Warn whenever a local variable or type declaration shadows another variable, parameter, type, or class member (in C++), or
whenever a built-in function is shadowed. Note that in C++, the
compiler will not warn if a local variable shadows a
struct/class/enum, but will warn if it shadows an explicit typedef.
来源:https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Warning-Options.html
如所见here,以下是有效的 C 代码:
int test = 10;
if (true) {
int test = 10;
}
我想知道在重新定义相同的情况下是否有警告标志。
有:-Wshadow=local
。传递不同的值(而不是 "local")还可以更精确地控制哪些标识符可以隐藏,哪些不能隐藏。
它检查名称是否相同,这是一个足够好的近似值。
-Wshadow Warn whenever a local variable or type declaration shadows another variable, parameter, type, or class member (in C++), or whenever a built-in function is shadowed. Note that in C++, the compiler will not warn if a local variable shadows a struct/class/enum, but will warn if it shadows an explicit typedef.
来源:https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Warning-Options.html