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
}