IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse C & C++ Discussion :

Eclipse pense � une syntax error avec un typedef opaque


Sujet :

Eclipse C & C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par d�faut 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 : 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?

  2. #2
    Membre confirm� Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par d�faut
    En ajoutant une d�claration de la structure sans la d�finir juste avant, comme ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    struct _list; /* ajouté */
    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 );
    Eh bien rien ne change...

  3. #3
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    Bonjour,

    CDT n'est qu'une interface graphique, s'il y a des probl�mes avec le compilateur, il faudrait indiquer l'erreur, et si possible dans le forum d�di� au compilateur qui pose probl�me (gcc 3, 4, mingw, compilateur microsoft, intel, etc)

  4. #4
    Membre confirm� Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par d�faut
    Mais justement, l'analyse syntaxique du code qui est pr�sent� dans Eclipse est r�alis�e par Eclipse, et non pas par le compilateur. L'analyse syntaxique n'est r�alis�e par le compilo qu'� la compilation.

    Ce n'est donc pas un probl�me de compilateur, mais un probl�me d'Eclipse (et plus particuli�rement le module CDT, qui g�re tout ce qui est relatif au C).

    Je me rends compte que mon premier post n'est pas clair, je vais l'�diter.
    D'ailleurs, je peux r�pondre � ta question: le compilateur ne sort aucune erreur; c'est simplement Eclipse qui souligne certaines fonctions comme "erreurs syntaxiques" sans aucune raison.

  5. #5
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    L'analyse syntaxique est faite par le compilateur. CDT ne fait que parser la sortie du compilateur

  6. #6
    Membre confirm� Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par d�faut
    J'insiste: la compilation ne fait ressortir aucune erreur de syntaxe (d'ailleurs je compile en mode Wall et Werror, chaque warning arr�te la compilation).
    Je pense que c'est l'analyse d'Eclipse qui perd les p�dales, et je ne sais pas comment rem�dier � ce probl�me.

Discussions similaires

  1. Syntax error avec jQuery
    Par nicko_73 dans le forum jQuery
    R�ponses: 5
    Dernier message: 23/10/2009, 09h23
  2. R�ponses: 0
    Dernier message: 06/08/2008, 11h44
  3. Syntax error avec un script KSH
    Par Neuromancien2 dans le forum Shell et commandes GNU
    R�ponses: 1
    Dernier message: 19/05/2008, 16h44
  4. VBS syntax error avec la fonction PivotCache d'Excel
    Par speedking78 dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 28/02/2008, 14h44
  5. [INNER JOIN] Pourquoi ai-je une syntax error ?
    Par ricil78 dans le forum Acc�s aux donn�es
    R�ponses: 9
    Dernier message: 04/08/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo