Ostrzeżenie C6246

Lokalna deklaracja zmiennej ukrywa deklarację o tej samej nazwie w zakresie zewnętrznym. Dodatkowe informacje: Zobacz poprzednią deklarację w lokalizacji.

Uwagi

To ostrzeżenie wskazuje, że dwie deklaracje mają taką samą nazwę w zakresie lokalnym. Nazwa w zakresie zewnętrznym jest ukryta przez deklarację w zakresie wewnętrznym. Każde zamierzone użycie deklaracji zakresu zewnętrznego spowoduje użycie deklaracji lokalnej.

Nazwa analizy kodu: LOCALDECLHIDESLOCAL

Przykład

Następujący kod generuje to ostrzeżenie:

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

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

Aby poprawić to ostrzeżenie, użyj innej nazwy zmiennej, jak pokazano w poniższym kodzie:

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

To ostrzeżenie identyfikuje tylko nakładające się zakresy.