Avviso C6246

La dichiarazione locale di 'variable' nasconde la dichiarazione con lo stesso nome nell'ambito esterno. Altre informazioni: vedere la dichiarazione precedente in 'location'.

Osservazioni:

Questo avviso indica che due dichiarazioni hanno lo stesso nome nell'ambito locale. Il nome nell'ambito esterno è nascosto dalla dichiarazione nell'ambito interno. Qualsiasi uso previsto della dichiarazione di ambito esterno comporterà l'uso della dichiarazione locale.

Nome dell'analisi del codice: LOCALDECLHIDESLOCAL

Esempio

Il codice seguente genera questo avviso:

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

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

Per correggere questo avviso, usare un altro nome di variabile, come illustrato nel codice seguente:

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

Questo avviso identifica solo una sovrapposizione dell'ambito.