경고 C6246

'variable'의 로컬 선언은 외부 범위에서 동일한 이름의 선언을 숨깁니다. 추가 정보: '위치'에서 이전 선언을 참조하세요.

설명

이 경고는 두 선언의 이름이 로컬 범위에서 동일하다는 것을 나타냅니다. 외부 범위의 이름은 내부 범위의 선언에 의해 숨겨집니다. 외부 범위 선언을 의도한 대로 사용하면 로컬 선언이 사용됩니다.

코드 분석 이름: LOCALDECLHIDESLOCAL

예시

다음 코드는 이 경고를 생성합니다.

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

이 경고는 범위 겹침만 식별합니다.