Advertencia C6246

La declaración local de 'variable' oculta la declaración del mismo nombre en el ámbito externo. Información adicional: vea la declaración anterior en "location".

Comentarios

Esta advertencia indica que dos declaraciones tienen el mismo nombre en el ámbito local. La declaración del ámbito interno oculta el nombre en el ámbito externo. Cualquier uso previsto de la declaración de ámbito exterior dará como resultado el uso de la declaración local.

Nombre de análisis de código: LOCALDECLHIDESLOCAL

Ejemplo

El código siguiente genera esta advertencia:

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

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

Para corregir esta advertencia, use otro nombre de variable como se muestra en el código siguiente:

#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;
  }
}

Esta advertencia solo identifica una superposición de ámbito.