C6246
Примечание C6246: локальное объявление <переменной> скрывает объявление такого же имени во внешней области. Дополнительные сведения: см. предыдущее объявление в <расположении>.
Данное предупреждение означает, что два объявления имеют одно имя в локальной области видимости. Имя из внешней области скрыто объявлением во внутренней области. Любое преднамеренное использование объявления из внешней области приведет к использованию локального объявления.
Пример
Данное предупреждение создается в следующем коде:
#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );
int f( )
{
int i = DoSomething( );
if (i > UPPER_LIMIT)
{
int i;
i = rand( );
}
return i;
}
Для устранения этого предупреждения используйте другое имя переменной, как указано в следующем коде:
#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );
int f ( )
{
int i = DoSomething( );
if (i > UPPER_LIMIT)
{
int j = rand( );
return j;
}
else
{
return i;
}
}
Данное предупреждение указывает только на наложение областей видимости.