컴파일러 경고(수준 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++;
}