Freigeben über


Compilerwarnung (Ebene 4) C4800

Visual Studio 2019 und höher:

Implizite Konvertierung von 'type' in bool. Mögliche Informationsverluste

C4800 ist eine Warnung der Ebene 3 in Visual Studio 2015 und früher:

'type' : Erzwingen des Werts zu bool 'true' oder 'false' (Leistungswarnung)

Diese Warnung wird generiert, wenn ein Wert implizit in typkonvertiert boolwird. In der Regel wird diese Meldung durch Zuweisen von int Variablen zu bool Variablen verursacht, bei denen die int Variable nur Werte true enthält, und falsekann als Typ boolneu deklariert werden. Wenn Sie den Ausdruck nicht neu schreiben können, um den Typ boolzu verwenden, können Sie dem Ausdruck "!=0" hinzufügen, der den Ausdruckstyp boolangibt. Wenn Sie den Ausdruck in den Typ bool umwandeln, wird die Warnung nicht deaktiviert. Dies ist beabsichtigt.

Diese Warnung wird in Visual Studio 2017 nicht ausgegeben.

Diese Warnung ist standardmäßig ab Visual Studio 2019 deaktiviert. Verwenden Sie "/wn4800", um C4800 als Warnung der Ebene n oder "/Wall" zu aktivieren, um alle Standardmäßig deaktivierten Warnungen zu aktivieren. Weitere Informationen finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind.

Beispiel

Im folgenden Beispiel wird C4800 generiert und veranschaulicht, wie sie behoben werden:

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

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

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