경고 C6316
잘못된 연산자: 테스트된 식은 상수이고 0이 아닙니다. 비트 사용 및 비트 설정 여부 확인
이 경고는 비트 및 (|
)를 사용해야 하는 경우 비트 또는 (&
)의 사용을 나타냅니다. 비트 또는 결과 식에 비트를 추가하는 반면 비트는 두 연산자 간에 공통된 비트만 선택합니다. 플래그에 대한 테스트는 비트 및 같음 테스트를 사용하여 수행해야 합니다.
코드 분석 이름: INAPPROPRIATEUSEOFBITOR
다음 코드는 이 경고를 생성합니다.
#define INPUT_VALUE 2
void f( int Flags)
{
if (Flags | INPUT_VALUE) // warning
{
// code
}
}
이 경고를 수정하려면 다음 코드를 사용합니다.
#define ALLOWED 1
#define INPUT_VALUE 2
void f( int Flags)
{
if ((Flags & INPUT_VALUE) == ALLOWED)
{
// code
}
}