Comment utiliser le type de données booléen en C?
7 réponses
Si vous avez un compilateur qui prend en charge C99 vous pouvez
#include <stdbool.h>
Sinon, vous pouvez définir le vôtre si vous le souhaitez. Selon la façon dont vous voulez l'utiliser (et si vous voulez pouvoir compiler votre code EN C++), votre implémentation pourrait être aussi simple que:
#define bool int
#define true 1
#define false 0
À mon avis, cependant, vous pouvez aussi bien utiliser {[2] } et utiliser zéro pour signifier faux et non nul pour signifier vrai. C'est comme ça que c'est habituellement fait en C.
C99 a un type de données booléen, en fait, mais si vous devez utiliser des versions plus anciennes, définissez simplement un type:
typedef enum {false=0, true=1} bool;
Comme alternative à la réponse de James McNellis, j'essaie toujours d'utiliser l'énumération pour le type bool au lieu des macros: typedef enum bool {false=0; true=1;} bool;
. Il est plus sûr b/c il permet au compilateur de vérifier le type et élimine les courses d'expansion de macro
C99 introduit {[1] } en tant que type booléen pur intrinsèque. Non #include
S nécessaire:
int main(void)
{
_Bool b = 1;
b = 0;
}
Sur un vrai compilateur C99 (ou supérieur) conforme, le code ci-dessus devrait être parfaitement compilé.
Nous pouvons utiliser le type enum pour cela.Nous n'avons pas besoin d'une bibliothèque. Par exemple
enum {false,true};
La valeur de false
est 0 et la valeur de true
sera de 1.
struct Bool {
int true;
int false;
}
int main() {
/* bool is a variable of data type – bool*/
struct Bool bool;
/*below I’m accessing struct members through variable –bool*/
bool = {1,0};
print("Student Name is: %s", bool.true);
return 0;
}