bool (C++)
ce mot clé est un type intégré.une variable de ce type peut avoir des valeurs true et false.Les expressions conditionnelles sont de type bool et ainsi ont des valeurs de type bool.par exemple, i!=0 a maintenant true ou false selon la valeur d' i.
Les valeurs true et false ont une relation suivante :
!false == true
!true == false
dans l'instruction suivante :
if (condexpr1) statement1;
si condexpr1 est true, statement1 est toujours exécuté ; si condexpr1 est false, statement1 n'est pas exécuté.
Lorsqu'un suffixe ou un opérateur d' ++ de préfixe est appliqué à une variable de type bool, la variable est définie à true.le suffixe ou l'opérateur d' -- de préfixe ne peut pas être appliqué à une variable de ce type.
le type d' bool participe aux promotions intégrales.Un cast sur une valeur r de type bool peut être convertie en un cast sur une valeur r de type int, avec false zéro devenant et true devenir.Comme un type distinct, bool participe à la résolution de surcharge.
Spécifique à Microsoft
En Visual C++4.2, les fichiers d'en-tête C++ standard ont contenu typedef qui a égalisé bool avec int.Dans Visual C++ 5,0 et versions ultérieures, bool est implémenté comme un type intégré d'une taille de 1 byte.Cela signifie que pour Visual C++ 4,2, un appel de sizeof (bool) obtient 4, alors que dans Visual C++ 5,0 et versions ultérieures, les mêmes produit 1. d'appel.Cela peut provoquer des problèmes d'altération de la mémoire si vous avez défini des membres de structures de type bool dans Visual C++ 4,2 et combinez les fichiers objets (OBJ) et/ou les DLL générés avec 4,2 et 5,0 ou les compilateurs ultérieurs.
La macro de __BOOL_DEFINED peut être utilisée pour encapsuler du code qui est activé dépendant si bool est pris en charge.
Exemple
// 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
}