_Bool type de données de C99

Le standard C99 du langage de programmation C définit le type de données _Bool tant que macro pour un autre type de données (car le langage ne peut pas traiter un type safe boolean).

Est-ce que le _Bool une macro pour unsigned char , unsigned int ou un autre type de données?

_Bool est un type entier distinct qui est conforme à la norme C. _Bool est un mot clé du langage C.

2 Un object déclaré comme type _Bool est suffisamment grand pour stocker les valeurs 0 et 1.

_Bool est un type entier non signé.

Le type _Bool et les types entiers non signés qui correspondent aux types entiers signés standard sont les types entiers non signés standard.

Et il faut mentionner que

– Le rang de _Bool doit être inférieur au rang de tous les autres types d’entiers standard.

Le type _Bool est un nouveau type figurant dans la norme C99.
C’est un type entier non signé.
Sa plage de valeurs doit pouvoir contenir les valeurs 0 et 1.
La plage de valeurs de _Bool est comprise dans la plage de valeurs de tout autre type d’entier non signé.

Le mot clé _Bool est utilisé à la place de bool car la logique standard suppose qu’il existe dans la pratique existante (avant 1999) plusieurs utilisations différentes de l’identifiant bool (en tant que macro ou bien en tant que typedef).

L’en-tête standard définit la macro bool comme signifiant exactement _Bool .
De plus, les constantes (macro) true et false sont définies comme étant 1 et 0 respectivement.

Bien que l’intention soit d’utiliser le mot bool , le programmeur peut choisir d’utiliser ou non le type standard _Bool ou bien de donner sa propre définition de bool .

C99 définit un nouveau type _Bool .

Il définit également un nouveau fichier d’en-tête stdbool.h qui inclut la ligne:

 #define bool _Bool