다음을 통해 공유


경고 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
  }
}