C6244
upozornění C6244: místní prohlášení <variable> Skryje předchozí prohlášení na <line> z <file>
Toto upozornění znamená, že prohlášení má stejný název jako prohlášení na vnější obor a skryje předchozí prohlášení.Nebude možné odkazovat na předchozí prohlášení z uvnitř místní obor.Jakékoli zamýšlené použití předchozí prohlášení skončí pomocí místní prohlášení, že toto upozornění pouze identifikuje obor překrývají a není životnost překrytí.
Příklad
Následující kód vygeneruje toto upozornění:
#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)
Chcete-li opravit toto upozornění, použijte následující ukázkový kód:
#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)
Při vyřizování přidělení paměti, zkontrolujte kód a určit, zda přidělení byl uložen v jedné proměnné a uvolnění jiné proměnné.