Picture

Samuel's Website

Utiliser des variables de type Booléen - C

Samuel Forestier — 15 May 2015
Vous savez tous qu'une des nouveautés que le C++ a apporté est bien la gestion du type 'bool'. Une variable pouvant donc être à '1' ou à '0', traduisant l'état d'un objet comme un interrupteur par exemple, mais qui sert surtout à rendre le code plus lisible, même si la plupart d'entre vous pensent qu'il est inutile...

Mais la question est, pouvons-nous utiliser ce type en C maintenant ?
Oui et non, du moins, pas si facilement.

Se présentent à vous plusieurs méthodes, à vous de choisir celle que vous préférez !

I) Rédéfinition du type de façon manuelle

Qu'est-ce qu'un 'bool' ? Une simple variable contenant '0' ou '1', alors quel est le type pouvant remplir cette tâche le plus facilement possible ?
Le 'int'. Et maintenant en prenant le moins de place possible en mémoire ?
Le 'char' !
Donc voici une implémentation possible:
# define true 1
# define false 0

typedef char bool
;

/* */

bool var = true ;


II) Utilisation du mot clef '_Bool' 

Depuis le C99, il existe en fait un type booléen, mais il n'est pas sous la forme 'bool'. Voici son utilisation:
# define true 1
# define false 0


/* */

_Bool var = true ;


III) Maniaque ? Pas pratique ? Utilisons 'bool' !

Petite technique consistant juste à définir 'bool' comme '_Bool':
# define true 1
# define false 0

typedef _Bool bool ;

/* */

bool var = true ;

III) Utilisation de "stdbool.h"

Une librairie supplémentaire a été apportée avec la norme C99, comportant 4 macros. Avec elles, vous pouvez directement utiliser le type 'bool'. Cette technique est à utiliser si votre projet est compilé en C99 ou supérieur. Pour C89, voir ci-dessus :wink:
# include <stdbool.h>

/* */

bool var = true ;