Sdílet prostřednictvím


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é.