Upozornění C6246

Místní deklarace proměnné skryje deklaraci stejného názvu ve vnějším oboru. Další informace: Viz předchozí deklarace v umístění.

Poznámky

Toto upozornění označuje, že dvě deklarace mají stejný název v místním oboru. Název ve vnějším oboru je skrytý deklarací ve vnitřním oboru. Jakékoli zamýšlené použití deklarace vnějšího oboru způsobí použití místní deklarace.

Název analýzy kódu: LOCALDECLHIDESLOCAL

Příklad

Následující kód vygeneruje toto upozornění:

#include <stdlib.h>
#define UPPER_LIMIT 256
int DoSomething( );

int f( )
{
  int i = DoSomething( );
  if (i > UPPER_LIMIT)
  {
    int i;
    i = rand( );
  }
  return i;
}

Chcete-li toto upozornění opravit, použijte jiný název proměnné, jak je znázorněno v následujícím kódu:

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

Toto upozornění identifikuje pouze překrývající se obor.