Compartir a través de


C6244

Advertencia C6244: La declaración local de <variable> oculta la declaración anterior en la línea <línea> de < archivo >

Esta advertencia indica que una declaración tiene el mismo nombre que una declaración de un ámbito externo y oculta la declaración anterior.No podrá hacer referencia a la declaración anterior desde el interior del ámbito local.Cualquier intento de uso de la declaración anterior provocará el uso de la declaración local. Esta advertencia se limita a identificar una superposición de ámbitos, no de duraciones.

Ejemplo

El código siguiente genera esta advertencia:

#include <stdlib.h>
#pragma warning(push)

// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int i;
void f();
void (*pf)();

void test()
{
    // Hide global int with local function pointer
    void (*i)();  //Warning: 6244

     // Hide global function pointer with an int
    int pf;     //Warning: 6244
}
#pragma warning(pop)

Para corregir esta advertencia, utilice el siguiente código de ejemplo:

#include <stdlib.h>
#pragma warning(push)
// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int g_i;          // modified global variable name
void g_f();       // modified global function name
void (*f_pf)();   // modified global function pointer name

void test()
{
    void (*i)();
    int pf;
}
#pragma warning(pop)

En la administración de asignaciones de memoria, revise el código para determinar si una asignación se guardó en una variable y se liberó mediante otra variable.