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


C6246

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

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;
  }
}

Данное предупреждение указывает только на наложение областей видимости.