Share via


C6246

경고 C6246: <variable>의 지역 선언이 외부 범위에 있는 같은 이름의 선언을 숨깁니다. 추가 정보: <location>에 있는 이전 선언을 참조하십시오.

이 경고는 지역 범위에 있는 두 선언의 이름이 같다는 것을 나타냅니다. 외부 범위에 있는 이름은 내부 범위에 있는 선언에 의해 숨겨집니다. 외부 범위 선언을 사용하려고 해도 결과적으로 지역 선언이 사용됩니다.

예제

다음 코드에서는 이 경고를 발생시킵니다.

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

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