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