Compilerwarnung (Ebene 4) C4457
Die Deklaration von "Identifier" blendet den Funktionsparameter aus.
Die Deklaration des Bezeichners im lokalen Bereich blendet die Deklaration des identisch benannten Funktionsparameters aus. Diese Warnung informiert Sie darüber, dass Verweise auf bezeichner im lokalen Bereich auf die lokal deklarierte Version aufgelöst werden, nicht den Parameter, der möglicherweise Ihre Absicht ist oder nicht. Um dieses Problem zu beheben, empfehlen wir, lokale Variablennamen zu geben, die nicht mit Parameternamen in Konflikt geraten.
Beispiel
Im folgenden Beispiel wird C4457 generiert, da der Parameter x
und die lokale Variable x
member_fn
dieselben Namen aufweisen. Verwenden Sie zum Beheben dieses Problems unterschiedliche Namen für die Parameter und lokalen Variablen.
// 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;