Поделиться через


C6244

Обновлен: Ноябрь 2007

C6244

Предупреждение C6244. Локальное объявление <переменная> скрывает предыдущее объявление в строке <строка> файла <файл>

Данное предупреждение означает, что объявлению присвоено имя объявления из внешней области видимости и поэтому новое объявление скрывает предыдущее. Ссылка на предыдущее объявление из локальной области станет невозможной. Любое преднамеренное использование предыдущего объявления приведет к использованию локального объявления. Данное предупреждение указывает только на наложение областей видимости, оно не определяет наложение времен существования.

Пример

Данное предупреждение создается в следующем коде:

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

Для устранения этого предупреждения используйте следующий пример кода:

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

При работе с выделением памяти изучите код, чтобы определить, не было ли выделение сохранено в одной переменной и освобождено другой переменной.

См. также

Ссылки

Предупреждение компилятора (уровень 3) C4101