다음을 통해 공유


경고 C6269

가능한 잘못된 작업 순서: 역참조 무시됨

이 경고는 포인터 역참조의 결과가 무시되고 있음을 나타내며, 포인터가 처음에 역참조되는 이유에 대한 의문을 제기합니다.

설명

컴파일러는 무상 역참조를 올바르게 최적화합니다. 그러나 경우에 따라 이 결함이 우선 순위 또는 논리 오류를 반영할 수 있습니다.

이 결함의 일반적인 원인 중 하나는 양식의 식 문입니다.

*p++;

이 문의 의도가 단순히 포인터p를 증가시키는 것이라면 역참조가 필요하지 않습니다. 그러나 의도에서 가리키는 위치를 p 증가시키려는 경우 구문 (p++) 이 대신 (*p)++해석되기 때문에 p++ 프로그램이 의도한 대로 동작하지 않습니다.

코드 분석 이름: POINTER_DEREF_DISCARDED

예시

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

#include <windows.h>

void f( int *p )
{
  // code ...
  if( p != NULL )
    *p++;
  // code ...
}

이 경고를 수정하려면 다음 코드와 같이 괄호를 사용합니다.

#include <windows.h>

void f( int *p )
{
  // code ...
  if( p != NULL )
    (*p)++;
  // code ...
}