Avertissement du compilateur (niveau 4) C4457
la 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 x
member_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;