Bonjour a tous, je suis étudiant et j'ai un projet d'un jeu de roulette a faire.
J'ai un petit problème avec des enum.
Voici mon code
case.c
case.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "case.h" #include <stdlib.h> #include <stdio.h> struct case_jeu newCase(int numero,int couleurCase){ Couleur tempCouleur; struct case_jeu nouvelleCase ; nouvelleCase.num = numero; if(couleurCase == 0){ tempCouleur = ROUGE; nouvelleCase.couleur=tempCouleur; }else{ tempCouleur = NOIR; nouvelleCase.couleur=tempCouleur; } return nouvelleCase; } void printInfoCase(struct case_jeu currentCase){ printf("num = %d \n", currentCase.num); printf("couleur = %d \n", currentCase.couleur); }
main.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef enum { ROUGE, NOIR }Couleur; struct case_jeu { int num; Couleur couleur; }; struct case_jeu newCase(int numero,int couleurCase); void printInfoCase(struct case_jeu currentCase);
et lorsque je l'exécute, il me ressort num = 8,couleur = 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "case.h" int main( int argc, const char* argv[] ) { printInfoCase(newCase(8,0)); return 1; }
Je ne comprend pas pourquoi il ressort 0 pour la couleur au lieu de la valeur de l'enum.
Quelqu'un pourrait-il m'expliquer pourquoi il me ressort la valeur de l'entier que j'ai passé en paramètre au lieu de "ROUGE" dans ce cas ?
Merci d'avance.
Partager