A missing blog post image

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 !


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;

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;

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;

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;