경고 C6288
잘못된 연산자: &>에 대한 상호 포함은 항상 0입니다. ||을(를) 사용하려고 했나요? 대신?
설명
이 경고는 테스트 식에서 변수가 서로 다른 두 상수에 대해 테스트되고 있음을 나타냅니다. 결과는 두 조건 모두에 따라 달라지며 이는 불가능합니다. 이러한 경우 코드는 프로그래머의 의도가 올바르게 캡처되지 않음을 나타냅니다. 코드를 검사하고 문제를 해결하는 것이 중요합니다. 그렇지 않으면 코드가 예상대로 동작하지 않습니다.
이 문제는 종종 사용 하 여 &&
발생 ; 대신||
, 하지만 또한 의도 된 위치를 !=
사용 하 여 ==
발생할 수 있습니다.
코드 분석 이름: MUTUALINCLUSIONOVERANDISFALSE
예시
다음 코드는 이 경고를 생성합니다.
void f(int x)
{
if ((x == 1) && (x == 2)) // warning
{
// code ...
}
}
이 경고를 수정하려면 다음 코드를 사용합니다.
void f(int x)
{
if ((x == 1) || (x == 2))
{
// logic
}
/* or */
if ((x != 1) && (x != 2))
{
// code ...
}
}
분석 도구는 식에 부작용이 있는지 경고하지 않습니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기