다음을 통해 공유


컴파일러 경고(수준 4) C4800

Visual Studio 2019 이상:

'type'에서 bool로의 암시적 변환입니다. 정보 손실 가능성

C4800은 Visual Studio 2015 이하의 수준 3 경고입니다.

'type': 값을 bool 'true' 또는 'false'로 강제 적용(성능 경고)

이 경고는 값이 암시적으로 형식 bool으로 변환될 때 생성됩니다. 일반적으로 이 메시지는 변수에 값 bool true 만 포함되고 false형식bool으로 다시 선언될 수 있는 int 변수에 변수를 할당 int 하여 발생합니다. 형식을 사용하도록 식을 다시 쓸 수 없는 경우 식 형식bool을 제공하는 bool식에 "!=0"를 추가할 수 있습니다. 식을 형식 bool 으로 캐스팅해도 의도적으로 경고를 사용하지 않도록 설정되지는 않습니다.

이 경고는 Visual Studio 2017에서 내보내지 않습니다.

이 경고는 Visual Studio 2019부터 기본적으로 꺼져 있습니다. /wn4800을 사용하여 C4800을 수준 n 경고로 사용하거나 /Wall을 사용하여 기본적으로 꺼져 있는 모든 경고를 사용하도록 설정합니다. 자세한 내용은 기본적으로 꺼져 있는 컴파일러 경고를 참조하세요.

예시

다음 샘플에서는 C4800을 생성하고 이를 해결하는 방법을 보여 줍니다.

// C4800.cpp
// compile with: /W4 /w44800
int main() {
   int i = 0;

   // To fix, instead try:
   // bool i = 0;

   bool j = i;   // C4800
   j++;
}