경고 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 ...
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기