J’ai quelques problemes avec typedef.
J’ai un programme d’othello en plusieurs fichiers dont un fichier othello.c (principal donc) qui contient
[cpp]
typedef struct
{
int * lignes;
int * colonnes;
int nbCoups;
} FeuillePartie;
[/cpp]
j’ai mis dans othello.h ceci:
[cpp]
typedef struct
{
int * lignes;
int * colonnes;
int nbCoups;
} FeuillePartie;
[/cpp]
et dans mon fichier sauvegarde.c jutilise cet type struct FeuillePartie en mettant bien evidament l’entete
[cpp]extern int sauvegardePartie(FeuillePartie *fp, int tailleOthellier);[/cpp]
et lors de la compile j’ai cette erreur:
In file included from othello.c:15:
sauvegarde.h:79: erreur: erreur de syntaxe avant un élément lexical « * »
79 etant la ligne sus-cité
je suppose que sauvegarde.h ne comprend pas ce type et donc il y a une couille dans mes typedef je pense (othello.c utilise ce type sans probleme) ?
oui j’ai inclu le .h dans le fichier sauvegarde.
pour le prototypage, je sais pas ce que c’est
javais declarere une variable globale dans mon othello.c et mis ca declaration dans le .h.
Pour le typedef, je l’ai rajouter juste apres dans mon .c et .h
oui mais je la met pas dans le .c du meme nom que le .h (j’ai fait ca pour une variable globale) ?
je rajoute pas extern devant?
jvous jure que jl’ai mis dans sauvegarde .h je capte pas pkoi ca marche pas vous pouver voir les sources avec le makefile ici
J’en suis a la 1.1.8, par rapport a la 1.1.7 il n’y eu aucun ajout d’include puisque sauvegarde.c et othello.c avait deja un include vers othello.c et vice-versa :heink:
autant pour moi j’avais dans un autre module de la fac fait ce type de truc a savoir typedef dans le .h.
Alors j’ai appliquer cette methode
mon typedef est dans othello.h, dans othello.c j inclu othello.h et ssauvegarde.h
et dans sauvegarde.h j’inclu othello.h
La il me sort cette erreur:
make
gcc -Wall -pedantic -c othello.c
In file included from othello.c:15:
sauvegarde.h:79: erreur: erreur de syntaxe avant un élément lexical « * »
make: *** [othello.o] Erreur 1
la ligne 79 etant:
extern int sauvegardePartie(FeuillePartie *fp, int tailleOthellier);
Il n’ya a pas de probleme de double inclusion ?
Comment utiliser un #ifdef avant #include pour pas inclure 2 fois un module?