Freigeben über


bool (C++)

Dieses Schlüsselwort ist ein integrierter Datentyp.Eine Variable dieses Typs kann Werte true und falsehaben.Bedingte Ausdrücke weisen den Typ bool und haben daher Werte des Typs bool.Beispielsweise verfügt jetzt i!=0false oder true je nach dem Wert von i.

Die Werte true und false haben das folgende Beziehung:

!false == true
!true == false

In der folgenden Anweisung:

if (condexpr1) statement1; 

Wenn condexpr1trueist, wird statement1 immer ausgeführt. condexpr1 wenn falseist, wird statement1 niemals ausgeführt.

Wenn ein Operator Postfix oder ein Präfix ++ einer Variablen vom Typ boolangewendet wird, wird die Variable auf truefestgelegt.Das Postfix oder Präfix ---Operator kann nicht auf eine Variable dieses Typs angewendet werden.

Der bool-Typ an den ganzzahligen Erweiterungen beteiligt.Ein R-Wert des Typs bool kann zu einem R-Wert des Typs int, mit false werdenes null und true das Werden konvertiert werden.Bei unterschiedlicher Typ akzeptiert bool bei der Überladungsauflösung teil.

Microsoft-spezifisch

In Visual C++4.2, werden die Standard-C++-Headerdateien typedef , das bool mit intgleichstellte.In Visual C++ 5.0 und höher, wird bool als integrierter Typ mit einer Größe von 1 Byteimplementiert.Das bedeutet, dass für Visual C++ 4.2, ein Aufruf von sizeof (bool) 4 ergibt, während in Visual C++ 5.0 und höher, der gleiche Aufruf 1 ergibt.Dies kann Probleme verursachen, wenn Sie Speicherbeschädigungens Strukturmember des Typs verfügen bool in Visual C++ 4.2 definiert und Objektdateien OBJ () und/oder DLL, die mit 4.2 und 5.0 oder neueren Compiler erstellten kombinieren.

Das __BOOL_DEFINED Makro kann verwendet werden, um Code zu umschließen, der abhängig ist, ob bool unterstützt wird.

Beispiel

// bool.cpp
#include <stdio.h>

int main()
{
    #if !defined(__BOOL_DEFINED)
        printf_s("bool is not supported\n");
    #elif defined(__BOOL_DEFINED)
    printf_s("bool is supported\n");
    #endif
}
  

Siehe auch

Referenz

C++-Schlüsselwörter

Grundlagen-Typen (C++)