경고 C6289
잘못된 연산자: 상호 제외
||
는 항상 0이 아닌 상수입니다. 대신 사용&&
하시겠습니까?
설명
이 경고는 테스트 식에서 변수가 서로 다른 두 상수와 같지 않은 것으로 테스트되고 있음을 나타냅니다. 결과는 true인 조건에 따라 달라지지만 항상 true로 평가됩니다.
이 문제는 종종 대신 &&
사용 ||
으로 인해 발생하지만 의도한 위치를 ==
사용하여 !=
발생할 수도 있습니다.
코드 분석 이름: MUTUALEXCLUSIONOVERORISTRUE
예시
다음 코드는 이 경고를 생성합니다.
void f(int x)
{
if ((x != 1) || (x != 3))
{
// code
}
}
이 경고를 수정하려면 다음 코드를 사용합니다.
void f(int x)
{
if ((x != 1) && (x != 3))
{
// code
}
}
/* or */
void f(int x)
{
if ((x == 1) || (x == 3))
{
// code
}
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기