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.