Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Lokalna deklaracja zmiennej ukrywa poprzednią deklarację w wierszu "file"
Uwagi
To ostrzeżenie wskazuje, że deklaracja ma taką samą nazwę jak deklaracja w zakresie zewnętrznym i ukrywa poprzednią deklarację. Nie będzie można odwołać się do poprzedniej deklaracji z wewnątrz zakresu lokalnego. Każde zamierzone użycie poprzedniej deklaracji spowoduje użycie deklaracji lokalnej. To ostrzeżenie identyfikuje tylko nakładające się zakresy i nie nakładają się na siebie okres istnienia.
Nazwa analizy kodu: LOCALDECLHIDESGLOBAL
Przykład
Następujący kod generuje to ostrzeżenie:
#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)
Aby poprawić to ostrzeżenie, użyj następującego przykładowego kodu:
#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)
Podczas pracy z alokacją pamięci przejrzyj kod, aby określić, czy alokacja została zapisana w jednej zmiennej i zwolniona przez inną zmienną.