Share via


Avertissement du compilateur (niveau 4) C4457

déclaration de 'identifier' masque le paramètre de fonction

La déclaration d’identificateur dans l’étendue locale masque la déclaration du paramètre de fonction nommé identiquement. Cet avertissement vous permet de savoir que les références à l’identificateur dans l’étendue locale sont résolues vers la version déclarée localement, et non le paramètre, qui peut ou non être votre intention. Pour résoudre ce problème, nous vous recommandons de donner des noms de variables locales qui ne sont pas en conflit avec les noms de paramètres.

Exemple

L’exemple suivant génère l’erreur C4457, car le paramètre x et la variable xmember_fn locale ont les mêmes noms. Pour résoudre ce problème, utilisez différents noms pour les paramètres et les variables locales.

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