web-dev-qa-db-fra.com

Comment utiliser le type de données booléen en C?

J'étais en train d'écrire du code en C et il s'avère qu'il n'a pas de type de données boolean/bool. Existe-t-il une bibliothèque C que je puisse inclure pour me permettre de renvoyer un type de données boolean/bool?

41
itsaboutcode

Si vous avez un compilateur qui supporte C99, vous pouvez

#include <stdbool.h>

Sinon, vous pouvez définir le vôtre si vous le souhaitez. En fonction de la manière dont vous voulez l'utiliser (et si vous voulez être capable de compiler votre code en C++), votre implémentation pourrait être aussi simple que:

#define bool int
#define true 1
#define false 0

À mon avis, vous pouvez aussi bien utiliser int et utiliser zéro pour signifier faux et non nul pour signifier vrai. C'est comme ça qu'on fait d'habitude en C.

65
James McNellis

C99 a un type de données booléen, en fait, mais si vous devez utiliser des versions plus anciennes, définissez un type

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

C99 a un type bool. Pour l'utiliser,

#include <stdbool.h>
3
kavya

Comme alternative à la réponse de James McNellis, j'essaie toujours d'utiliser l'énumération pour le type bool au lieu de macros: typedef enum bool {false=0; true=1;} bool;. Il est plus sûr de laisser le compilateur vérifier le texte et d’éliminer les courses d’expansion de macros.

1
ysap

C99 a introduit _Bool en tant que type booléen pur intrinsèque. Pas de #include requis:

int main(void)
{
  _Bool b = 1;
  b = 0;
}

Sur un vrai compilateur C compatible C99 (ou supérieur), le code ci-dessus devrait être parfaitement compilé.

0
alk

Nous pouvons utiliser le type enum pour cela.Nous n’avons pas besoin de bibliothèque . Par exemple

           enum {false,true};

la valeur de false sera 0 et la valeur de true sera 1.

0
Sri Charan