Upozornění kompilátoru (úroveň 4) C4457
deklarace identifikátoru skryje parametr funkce.
Deklarace identifikátoru v místním oboru skryje deklaraci identického parametru funkce. Toto upozornění vás upozorní, že odkazy na identifikátor v místním oboru se přeloží na místně deklarovanou verzi, nikoli na parametr, který může nebo nemusí být vaším záměrem. Pokud chcete tento problém vyřešit, doporučujeme zadat názvy místních proměnných, které nejsou v konfliktu s názvy parametrů.
Příklad
Následující ukázka generuje C4457, protože parametr x
a místní proměnná x
mají member_fn
stejné názvy. Pokud chcete tento problém vyřešit, použijte pro parametry a místní proměnné různé názvy.
// C4457_hide.cpp
// compile with: cl /W4 /c C4457_hide.cpp
struct S {
void member_fn(unsigned x) {
double a = 0;
for (int x = 0; x < 10; ++x) { // C4457
a += x; // uses local x
}
a += x; // uses parameter x
}
} s;