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.









Répondre avec citation






Partager