blog/_posts/2015-05-15-utiliser-des-var...

2.1 KiB

title date url layout category
Utiliser des variables de type Booléen - C 2015-05-15 utiliser-des-variables-de-type-booleens-c post Programming

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 :

{% highlight c %} #define true 1 #define false 0

typedef char bool;

/* */

bool var = true; {% endhighlight %}


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 :

{% highlight c %} #define true 1 #define false 0

/* */

_Bool var = true; {% endhighlight %}


Maniaque ? Pas pratique ? Utilisons bool

Petite technique consistant juste à définir bool comme Bool :

{% highlight c %} #define true 1 #define false 0

typedef _Bool bool;

/* */

bool var = true; {% endhighlight %}


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 😉

{% highlight c %} #include <stdbool.h>

/* */

bool var = true; {% endhighlight %}