Partager via


C6246

Mise à jour : novembre 2007

C6246

Avertissement C6246 : La déclaration locale de <variable> masque la déclaration du même nom dans la portée externe. Informations supplémentaires : reportez-vous à la déclaration précédente dans <emplacement>.

Cet avertissement indique que deux déclarations ont le même nom dans la portée locale. Le nom dans la portée externe est masqué par la déclaration dans la portée interne. Toute utilisation prévue de la déclaration de portée externe entraîne l'utilisation de la déclaration locale.

Exemple

Le code suivant génère cet avertissement :

#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );

int f( )
{
  int i = DoSomething( );
  if (i > UPPER_LIMIT)
  {
    int i;
    i = rand( );
  }
  return i;
}

Pour corriger cet avertissement, utilisez un autre nom de variable comme indiqué dans le code suivant :

#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );

int f ( )
{
  int i = DoSomething( );
  if (i > UPPER_LIMIT)
  {
    int j = rand( );
    return j;
  }
  else
  {
    return i;
  }
}

Cet avertissement identifie uniquement un chevauchement de portée.