答案 0 :(得分:4)
有:-Wshadow=local
。传递不同的值(而不是"本地")也可以更精确地控制哪些标识符可以被遮蔽。
它检查名称是否相同,这是一个足够好的近似值。
答案 1 :(得分:2)
-Wshadow 每当局部变量或类型声明影响另一个变量,参数,类型或类成员(在C ++中)或时,都会发出警告 每当内置函数被遮蔽时。请注意,在C ++中, 如果局部变量影响a,编译器将不会发出警告 struct / class / enum,但如果它隐藏了一个显式的typedef,它会发出警告。
来源:https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Warning-Options.html