Share via


C6244

업데이트: 2007년 11월

C6244

경고 C6244: <variable>의 지역 선언이 <file>의 <line>에 있는 이전 선언을 숨깁니다.

이 경고는 선언의 이름이 외부 범위에 있는 선언의 이름과 같아서 이전 선언을 숨긴다는 것을 나타냅니다. 지역 범위 내에서 이전 선언을 참조할 수 없습니다. 이전 선언을 사용하려고 해도 결과적으로 지역 선언이 사용됩니다. 이 경고는 범위 겹침만 식별하며 수명 겹침은 식별하지 않습니다.

예제

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

#include <stdlib.h>
#pragma warning(push)

// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int i;
void f();
void (*pf)();

void test()
{
    // Hide global int with local function pointer
    void (*i)();  //Warning: 6244

     // Hide global function pointer with an int
    int pf;     //Warning: 6244
}
#pragma warning(pop)

이 경고를 해결하려면 다음 샘플 코드를 사용합니다.

#include <stdlib.h>
#pragma warning(push)
// disable warning C4101: unreferenced local variable 
#pragma warning(disable: 4101) 

int g_i;          // modified global variable name
void g_f();       // modified global function name
void (*f_pf)();   // modified global function pointer name

void test()
{
    void (*i)();
    int pf;
}
#pragma warning(pop)

메모리 할당을 다룰 때는 코드를 검토하여 할당이 한 변수에 저장된 다음 다른 변수에 의해 해제되는지 여부를 확인합니다.

참고 항목

참조

컴파일러 경고(수준 3) C4101