La norme du langage C (C89) ne définit pas de type booléen. Si vous utilisez true et false, l'erreur suivante se produira :

infinite.c:5:12: error: use of undeclared identifier 'true'
    while (true) {

1 error generated.
make: *** [infinite] Error 1

Nous pouvons utiliser des définitions de macros en langage C pour le configurer :

// Définition de macro pour le type booléen #define BOOL int #define TRUE 1 #define FALSE 0 // Définir une variable booléenne BOOL flag = FALSE;

Il peut également être défini à l'aide d'un enum :

typedef enum { true=1, false=0 }bool;

Exemple

#include <stdio.h> // Calculer n!, la valeur de n est définie dans main int main(void) { int n = 10; // Calculer la factorielle int sum = 1; // Utilisé pour stocker le résultat de la factorielle typedef enum { true=1, false=0 }bool; bool flag = false; // Marqueur de factorielle int num = n; // Nombre d'itérations de la boucle while( !flag ) { sum = sum * (num--); // Terminer la boucle quand num = 1 if( num == 1) { flag = true; } } printf ("La valeur factorielle de %d est %d\n", n, sum); return 0; }

Le résultat de sortie est:

10的叠乘值为 3628800 

C99 fournit également un fichier d'en-tête <stdbool.h> qui définit bool pour représenter _Bool, true pour représenter 1, et false pour représenter 0. Tant que vous incluez stdbool.h, vous pouvez facilement utiliser le type booléen.

Exemple

// Inclure stdbool.h pour utiliser le type booléen #include <stdbool.h> #include <stdio.h> // Calculer n!, la valeur de n est définie dans main int main(void) { int n = 10; // Calculer la factorielle int sum = 1; // Utilisé pour stocker le résultat de la factorielle bool flag = false; // Marqueur de factorielle int num = n; // Nombre d'itérations de boucle while( !flag ) { sum = sum * (num--); // Terminer la boucle quand num = 1 if( num == 1) { flag = true; } } printf ("La valeur factorielle de %d est %d\n", n, sum); return 0; }

Le résultat de sortie est:

10的叠乘值为 3628800