Bonjour,
J'ai un problème d'inclusion de fichiers d'entête. J'ai refais un code en version simplifiée pour que vous compreniez le problème (le vrai code contient des structures hyper longues):
data_a.h:
data_b.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifndef DATA_A_H #define DATA_A_H #include "data_b.h" typedef struct data_a { int i; data_b_t db; } data_a_t; #endif
expected_specifier_qualifier_list_before.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifndef DATA_B_H #define DATA_B_H #include "data_a.h" typedef struct data_b { char c; data_a_t da; } data_b_t; #endif
et l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "data_a.h" #include "data_b.h" int main() { return 0; }
Je pense que c'est un problème classique mais je ne trouve pas la (bonne) solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 In file included from data_a.h:4, from expected_specifier_qualifier_list_before.c:1: data_b.h:8: error: expected specifier-qualifier-list before data_a_t
Une solution serait de fusionner les deux structures data_a data_b dans un seul fichier.
Le problème avec cette solution c'est qu'il faudrait changer pas mal de choses dans d'autres fichiers cources...
Merci d'avance pour votre aide.
Partager