Freigeben über


C6244

C6244

Warnung C6244: Die lokale Deklaration von <Variable> blendet die frühere Deklaration in Zeile <Zeile> von <Datei> aus.

Diese Warnung gibt an, dass eine Deklaration denselben Namen aufweist wie eine Deklaration in einem äußeren Bereich und daher die frühere Deklaration ausgeblendet wird. Im lokalen Bereich kann nicht mehr auf die vorherige Deklaration verwiesen werden. Wenn die Verwendung der früheren Deklaration beabsichtigt ist, führt dies zur Verwendung der lokalen Deklaration. Diese Warnung weist lediglich auf eine Bereichsüberschneidung hin, nicht auf eine Lebensdauerüberschneidung.

Beispiel

Der folgende Code generiert diese Warnung:

#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)

So korrigieren Sie die Warnung unter Verwendung des folgenden Beispielcodes

#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)

Überprüfen Sie im Zusammenhang mit Speicherzuordnungen den Code, um festzustellen, ob eine Zuordnung in einer Variablen gespeichert und von einer anderen Variablen freigegeben wurde.

Siehe auch

Referenz

Compilerwarnung (Stufe 3) C4101