Menu

Type booléen en C [Résolu/Fermé]

- - Dernière réponse : Nabla's
Messages postés
18259
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
- 16 févr. 2010 à 15:01
Bonjour,
j'aimerais déclarer un tableau de type booléen en C, puis je faire ceci:

bool tab[10]; ?

Je demande car visiblement gcc n'apprécie pas...

merci.
Afficher la suite 

7 réponses

Meilleure réponse
approuvée par Jean-François Pillou le 14 déc. 2018
Messages postés
11138
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
2213
3
Merci
En C (iso C99), tu as le type _Bool défini dans stdbool.h
Mais le type bool fait parti du C++.

Cdlt,

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 58785 internautes nous ont dit merci ce mois-ci

donc en incluant cette bibliotheque je peux mettre par exemple: _bool tab[10] ?

j'ai essayé et gcc n'aime tjs pas :-)
fiddy
Messages postés
11138
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
2213 > bernard -
J'ai pas mis _bool mais _Bool.
De plus, il faut mettre les bonnes options quand on compile pour dire qu'on est en ISO C99.

Cdlt,
> fiddy
Messages postés
11138
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
je vois, mais on peut définir nous même un type bool non? par exemple:

struct bool {
int TRUE=1;
int FALSE=0;
}

qu'en dis tu?
Messages postés
316
Date d'inscription
dimanche 20 septembre 2009
Dernière intervention
28 mars 2015
31
2
Merci
L'enumeration en question :

typedef enum bool bool;

enum bool
{
TRUE = 1, FALSE = 0
};

Les defines

#define bool char
#define TRUE 1
#define FALSE 0


Tu n'as plus qu'a situer tes defines ou ton énumération dans la bibliothèque stdio.h.

Messages postés
11138
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
2213
1
Merci
Qu'en dis-tu ?
Que je ne vois pas l'intérêt de recréer un type bool alors qu'il existe déjà en ISO C99.

Si néanmoins tu souhaites le recréer (ou que tu utilises l'ISO C89/90), tu peux mettre :
#define BOOL int
#define TRUE 1
#define FALSE 0

Cdlt,
Messages postés
316
Date d'inscription
dimanche 20 septembre 2009
Dernière intervention
28 mars 2015
31
0
Merci
Il n'y a pas de type bool en C.
0
Merci
non ben finalement je vais prendre celui de la norme C99, quelle est l'option de gcc à inclure pour compiler s'il te plait?
Messages postés
467
Date d'inscription
mercredi 12 août 2009
Dernière intervention
17 octobre 2011
69
0
Merci
Je vois pas l'interet de vouloir a tout pris utiliser un type bool :
int vrai = 1;
if(vrai)
{
    printf("vrai de vrai\n");
}
else if(!vrai)
{
     printf("faux\n");
}


++
ben disons qu'on me demande de définir une structure avec dedans 2 tableaux, un tableau d'entiers et un tableau de booléens et ensuite je vais devoir mettre toutes les cases du tableau booléen à 0, pour ça que je demandais comment définir un tableau de type booléen...
Nabla's
Messages postés
18259
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3841 -
moi j'aurai utilise un unsigned char pour rester au plus proche de ce qui existe en C++
Messages postés
467
Date d'inscription
mercredi 12 août 2009
Dernière intervention
17 octobre 2011
69
0
Merci
Fais une enumération !
Mais c'est peut être pour t'expliquer que c'est un booleen !