Booleen en c
dercf345
-
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
je veux ecrire un programme qui recherche une valeur saisie dans un tableau de valeurs.J'utilise une variable de type booleen pour cela.
Mais comment la déclarer en C?
Merci d'avance!
je veux ecrire un programme qui recherche une valeur saisie dans un tableau de valeurs.J'utilise une variable de type booleen pour cela.
Mais comment la déclarer en C?
Merci d'avance!
4 réponses
-
Bonsoir
pourquoi faire compliquer si on peut faire simpletypedef enum { false, true } bool;
à bientôt
-
Arf, j'y pense jamais aux
enum
s! De toute façon ta technique n'est pas (toujours) économe: les enums ne sont pas typés en C et C++ (sauf dans le C++11 et plus), donc le choix de la taille du type est laissé au compilateur et pas au programmeur (donc un mauvais choix peut être fait; ah la magie de l'implentation defined). -
Bonjour
Vue sur cet angle tu peux avoir raison mais une condition de typebool
se résume par deux valeurs soit elle est fausse soit elle est vraie de plus en langage C, les identificateurs de l'énumération (ici false, true) sont considérés automatiquement comme étant des constantes de type int, ce qui donne des valeurs 0 et 1 etc .#include <stdio.h> typedef enum { false,true} bool; int main(void) { bool var = true; if( var ){ printf("Valeur de Var = %d \n", var); var = false; } printf("Nouvelle valeur var = %d \n", var); /*** * Teste de valeur Constante * False & True ***/ printf("Valeur int = %d\n", sizeof(int) ); printf("valeur true = %d\n", sizeof(true) ); printf("valeur false = %d\n", sizeof(false) ); return ( 0 ); }
Si on désire donner des valeurs particulières aux constantes, cela est également possible. mais bon tu à peut-être tes raisons donc si tu peux m'éclairer ou un expert peut nous éclairer je suis preneur
à bientôt
-
-
-
-
-
-
@Dal Oui je suis d'accord, mais il voulait savoir enfin si je comprends bien comment peut il déclarer le type
bool
@drcf345 J'utilise une variable de type booleen pour cela.
Mais comment la déclarer en C ?
C'est pour ça que je lui ai pendu untypedef enum { false,true} bool;quant à l'exemple c'était pour @gravgun sur les constante de l'énumération.
Cependant avoir un type est bien plus lisible et structuré (-_-)! Ceci dit le C99 est excessif juste pour faire un teste.
à bientôt -
oui, mais ce que dercf345 ne sait peut-être pas, en posant sa question, c'est qu'il n'est pas utile en C de déclarer une variable de type booléen pour conserver une valeur signifiant vrai ou faux.
et que, dès lors, l'informer que 0 signifie faux et toute autre valeur entière signifie vrai, peut être aussi utile.
quant à la lisibilité, un code comme celui est plus concis et tout aussi lisible :#include <stdio.h> int main(void) { int vrai; vrai = (2 == 1 + 1); if (vrai) printf("L'expression 2 == 1 + 1 est vraie.\n"); return 0; }
Dal -
-
-
'lut, 2 solutions:
- soit tu utilises du C99 et inclus alors#include <stdbool.h>
- soit ce code:typedef unsigned char bool; #define true 1 #define false 0
L'utilisation est la même après:bool truc = true; bool machin = false; bool bidule = (7*2 == 14); // true if (bidule) { printf("Houra\n"); //s'affiche }from human import idiocy
del idiocy