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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?