Compartir a través de


C6246

Actualización: noviembre 2007

C6246

Advertencia C6246: La declaración local de <variable> oculta la declaración del mismo nombre en el ámbito externo. Información adicional: consulte la declaración anterior en <ubicación>.

Esta advertencia indica que dos declaraciones tienen el mismo nombre en el ámbito local. La declaración del ámbito interno oculta el nombre del ámbito externo. Cualquier intento de utilizar la declaración de ámbito externo provocará el uso de declaración local.

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, utilice 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 sólo identifica una superposición de ámbitos.