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?
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.
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;
C99 a un type bool
. Pour l'utiliser,
#include <stdbool.h>
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.
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é.
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.