영어로 읽기

다음을 통해 공유


경고 C6285

('non-zero constant' || 'non-zero constant')는 항상 0이 아닌 상수입니다. 비트 및 연산자를 사용하시겠습니까?

이 경고는 두 상수 값(둘 다 1보다 큰 값)이 테스트 컨텍스트에서 발생하는 논리 또는 작업에 대한 인수로 검색되었음을 나타냅니다. 이 식은 항상 TRUE입니다.

설명

1보다 큰 상수 값은 논리에 대한 인수 또는 비트 필드일 수 있음을 나타냅니다. 이 경우 비트 연산자가 더 적절한 연산자가 아닌지 검토하십시오.

코드 분석 이름: LOGICALOROFCONSTANTS

예시

다음 코드는 이 경고를 생성합니다.

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f()
{
  if (TESTED_VALUE || MASK)
  {
    puts("(TESTED_VALUE || MASK) True");
    // code ...
  }
  else
  {
    puts("(TESTED_VALUE || MASK) False");
    // code ...
  }
}

이 경고를 수정하려면 다음 코드를 사용합니다.

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f(int flag)
{
  if ((TESTED_VALUE & MASK)== flag)
  {
    puts("true");
    // code ...
  }
  else
  {
    puts("false");
    // code ...
  }
}

참고 항목

이항 연산자가 있는 식