expected specifier-qualifier-list before ‘data_a_t’
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:
Code:
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 |
data_b.h:
Code:
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 |
expected_specifier_qualifier_list_before.c:
Code:
1 2 3 4 5 6
| #include "data_a.h"
#include "data_b.h"
int main() {
return 0;
} |
et l'erreur:
Code:
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 |
Je pense que c'est un problème classique mais je ne trouve pas la (bonne) solution.
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.