Share via


C6269

경고 C6269: 연산 순서가 잘못된 것 같습니다. 역참조가 무시되었습니다.

이 경고는 포인터 역참조의 결과가 무시되어 포인터가 첫 번째 위치에서 역참조되는 이유에 대한 의문이 발생했음을 나타냅니다.

컴파일러에서 불필요한 역참조를 올바르게 최적화합니다. 하지만 일부 경우 이 오류는 우선 순위 또는 논리에 오류가 있음을 나타냅니다.

이 오류의 일반적인 원인 중 하나는 폼의 식 문입니다.

*p++;

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

예제

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

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