Freigeben über


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 xmember_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;