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
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);
}
case.h
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);
main.c
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;
}
et lorsque je l'exécute, il me ressort num = 8,couleur = 0.
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.