Comment utiliser les booléens en c?

conte -  
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -
la programmation en c

2 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

Depuis C99, on un type bool existe en C, il faut utiliser #include <stdbool.h>
On peut écrire alors : bool z = 2 < 3; if ( z != false ) { printf("z est vrai"); }


En C, les booléen sont en réalité fréquemment utilisés.
  • Tout scalaire est implicitement convertible en booléen. Il vaut false s'il est null, et vaut true pour toutes les autres valeurs. Cette conversion est utilisée dans les if(bool) while(bool) for(;bool;).

enum E { A, B, C } e = B;
double d = 3.0;
double *ptr = &d;
bool b = true;
if ( b ) if ( 2 ) if ( d ) if ( e ) if ( ptr ) { printf( "tout est vrai" ); }
  • Des opérateurs existent sur les booléens, ce sont || et && et !. Leurs membres sont convertis en booléens et ils produisent un entier à valeur de booléen ( 0 pour faux et 1 pour vrai ).

if ( b && !0 && d && !A && ptr ) { printf( "tout est encore vrai" ); }
  • Les opérateurs de comparaisons retournent aussi un entier à valeur de booléen.

if ( (2 < 3) && (4 != 5) ) { printf( "vrai" ); }
  • Le C peut aussi gérer des masques de booléen dans les valeurs intégrales. Les opérateurs & | et ^ gèrent alors chacun des bits comme un booléen. Et l'opérateur ~ retourne le complément de tous les bits. Les opérateurs de décalage permettent de les déplacer.

int x = 0x100 | ( 2 < 3 ) | (~-1 & 0x10);
printf("0x%X 0x%X 0x%X 0x%X" , 2<3 , ~-1 , x , x <<8 );
// => 0x1 0x0 0x101 0x10100
0
Utilisateur anonyme
 
Bonjour déjà,
Ensuite, étoffer un peu la demande ne serait pas de refus.
Enfin, un minimum de recherches et tu aurais trouvé.

Bref, pour que tu ne repartes pas les mains vides :
Le type booléen n'est utilisable qu'en C++.
En C, tu peux utiliser des entiers : 1 pour VRAI et 0 pour FAUX.

Bonne journée
-2
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   30
 
Tu peux crée une structure qui reproduit le booléen ..
0