C6244
Aktualisiert: November 2007
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.