Eclipse pense à une syntax error avec un typedef opaque
Bonjour à tous,
J'ai un petit problème avec Eclipse CDT et l'analyse de syntaxe que CDT réalise pour un programme en C.
Il est commun d'utiliser un pointeur opaque lorsqu'on veut cacher la structure utilisée dans une API.
Je vous donne un exemple:
fichier list.h:
Code:
1 2 3 4 5 6 7 8 9 10
|
typedef struct _list list; /* pointeur opaque, la structure
est définie dans le .c */
/* ces fonction sont soulignées
"syntax error" car CDT ne connait
pas encore "struct _list" et par
extension, le type "list" */
list *create_list( void );
int next_data( list *pList ); |
fichier list.c:
Code:
1 2 3 4 5 6 7 8
|
#include "list.h"
struct _list {
int id;
[...]
}; |
Mon problème est que CDT n'interprète pas correctement le typedef car la structure à laquelle il fait référence n'est pas encore définie.
Toutes les fonctions qui sont déclarées dans le header et qui utilisent ce typedef sont soulignées en jaune "syntax error" (l'analyseur syntaxique de CDT pense que la structure n'existe pas) alors qu'à la compilation tout se passe bien, évidemment (et le programme fonctionne sans problème).
Une solution?