Bonjour,
Je poste ce message aujourd'hui car je n'arrive pas à résoudre une erreur de compilation dans un projet que je développement en ce moment.
Voici à quoi ressemblent mes fichiers:
main.c
source1.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <stdio.h> #include <stdlib.h> #include "source2.h" int main() { printf("Hello world!\n"); return 0; }
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 #ifndef SOURCE1_H #define SOURCE1_H #include "source2.h" typedef struct { int atrb1; int atrb2; } T_Struct1; void funct(T_Struct1 pParam1, T_Struct2 pParam2); #endif // SOURCE1_H
source2.h
Si dans le main j'inclue source1.h je me retrouve avec l'erreur suivante:
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 #ifndef SOURCE2_H #define SOURCE2_H #include "source1.h" typedef struct { int atrb1; int atrb2; } T_Struct2; void funct2(T_Struct1 pParam1, T_Struct2 pParam2); #endif // SOURCE2_H
Et si j'include source2.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part C:\Users\Daniel\Mon dossier\Test\source2.h|13|parse error before "pParam1"|
Code : Sélectionner tout - Visualiser dans une fenêtre à part C:\Users\Daniel\Mon dossier\Test\source1.h|13|parse error before "T_Struct2"|
Je pense comprendre d'où vient le problème: lorsque je fais un include de source2.h dans source1.h le prototype de funct2 a besoin de la structure définie dans source1.h mais cette dernière ne sera définie qu'une fois que source2.h aura fini d'être définie elle même
(je ne sais pas si je suis assez clair)
Est-ce que quelqu'un aurait une solution à ce problème, sachant qu'il est important que ces structures soient dans des fichiers séparés?
En vous remerciant par avance,
Partager