Logo de kxs.frCours d'informatique pour le lycée et la prépa

stdbool.h

La bibliothèque stdbool.h permet de définir un nouveau type booléen : bool. Les booléens n'existe pas en C car 0 est considéré comme faux et toute autre valeur vraie :

if ("MP2I") {
	printf("c'est vrai\n");
} else {
	printf("c'est faux\n");
}
// C'est vrai

if (1) {
	printf("c'est vrai\n");
} else {
	printf("c'est faux\n");
}
// C'est vrai

if (-1) {
	printf("c'est vrai\n");
} else {
	printf("c'est faux\n");
}
// C'est vrai

if (86511) {
	printf("c'est vrai\n");
} else {
	printf("c'est faux\n");
}
// C'est vrai

if (0) {
	printf("c'est vrai\n");
} else {
	printf("c'est faux\n");
}
// C'est faux

Cela peut créer de nombreux problèmes. Il est donc courant d'utiliser la bibliothèque stdbool.h qui crée un type booléen bool qui peut prendre deux valeurs : true ou false.

#include <stdio.h>
#include <stdbool.h>

int main() {
	if (false) {
		printf("c'est vrai\n");
	} else {
		printf("c'est faux\n");
	} // c'est faux
	
	if (true) {
		printf("c'est vrai\n");
	} else {
		printf("c'est faux\n");
	} // c'est vrai
}

Mais pour afficher un booléen il faut toujours les considérer comme des entiers valant 0 ou 1  :

#include <stdio.h>
#include <stdbool.h>

int main() {
	printf("%d\n", true); // 1
	printf("%d\n", false); // 0
}