Share via


C6313

경고 C6313: 잘못된 연산자: 값이 0인 플래그는 비트 AND를 사용하여 테스트할 수 없습니다. 값이 0인 플래그를 찾으려면 같음 테스트를 사용하십시오.

이 경고는 테스트 컨텍스트에서 비트 AND(&) 연산자에 상수 값 0이 인수로 제공되었음을 나타냅니다. 결과 식은 상수이며 false가 됩니다. 즉, 의도와는 다른 결과가 나옵니다.

이 문제의 원인은 일반적으로 비트 AND를 사용하여 값이 0인 플래그를 테스트했기 때문입니다. 값이 0인 플래그를 테스트하려면 == 또는 !=를 사용하는 경우처럼 같음 테스트를 수행해야 합니다.

예제

다음 코드에서는 이 경고를 발생시킵니다.

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

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

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}