Accès rapide :
Présentation de l'entête <stdbool.h>
Entête à inclure
Type bool
Exemple de code
Sujets connexes
La librairie <stdbool.h>, introduite avec le standard C99, permet d'utiliser une notation booléenne plus lisible en C.
Elle définit le type bool, ainsi que les constantes true et false.
En C++, ces trois éléments existent déjà dans le langage. L'entête <cstdbool> n'a donc pas le même intérêt qu'en C,
mais il permet de conserver une certaine compatibilité avec du code partagé.
#include <stdbool.h> // <cstdbool> en C++
Une présentation simplifiée de cette librairie consiste à considérer les définitions suivantes. En pratique, la définition exacte dépend de l'implémentation, mais l'idée reste bien de manipuler une valeur logique.
#define bool _Bool #define true 1 #define false 0
L'utilisation de bool améliore la lisibilité des signatures de fonctions et du typage de vos variables. Une fonction qui
renvoie bool annonce directement qu'elle produit une réponse logique.
L'exemple suivant utilise une variable booléenne pour piloter une boucle de commandes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { bool mustExit = false; do { char command[20]; printf( "Enter a command: " ); fflush( stdout ); scanf( "%19s", command ); if ( strcmp( command, "exit" ) == 0 ) { mustExit = true; } else { printf( "Executing %s command\n", command ); } } while( mustExit == false ); return EXIT_SUCCESS; } |
Un exemple d'exécution possible est :
Enter a command: build Executing build command Enter a command: exit
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :