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

 C Discussion :

error: expected specifier-qualifier-list before


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut error: expected specifier-qualifier-list before
    Bonjour à tous,


    Je travaille actuellement sur un projet qui consiste à programmer en C un PIC32, mais je bloque à un certain moment sur une erreur de compilation...
    J'ai chercher une solution sur internet, et lu beaucoup de choses pour des problèmes semblables mais sans succès, c'est pourquoi je vous demande de l'aide.


    Alors voici mon problème :

    J'ai une structure principale comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    typedef struct
    {
        DWORD   SenderID;             
        DATA    values;                
        BYTE    func;                 
        BYTE    type;                  
        WORD    manufacturerID;        
        BYTE    status;                
    }SENSOR;
    Comme vous le voyez cette dernière inclus une 'sous-structure' de type 'DATA' que voici (qui est plus exactement un 'union' ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    typedef union
    {
        D5_00_01 d5_00_01;
        D5_3F_00 d5_3f_00;
    } DATA;
    Et j'ai (encore) une inclusion dans cet union, voici les structures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    typedef struct 
    {
        BOOL    LRN;          
        BOOL    CO;             
    } D5_00_01;
     
    typedef struct
    {
        BYTE    MCMSB;          
        BOOL    LRNB;          
        BYTE    MCLSB;         
        BOOL    MSGS;
    }D5_3F_00;
    Toutes ces inclusions peuvent être considérées comme 'brouillon' mais après avoir retourné mon problème dans tous les sens, je n'ai pas vraiment le choix...

    Enfin voila mon erreur de compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    In file included from ../src/eep/1BS.c:17:0:
    ../src/eep/1BS.h:31:5: error: expected specifier-qualifier-list before 'BOOL'
    ../src/eep/1BS.h:41:5: error: expected specifier-qualifier-list before 'BYTE'
    In file included from ../src/app/app.h:26:0,
                     from ../src/app/app.c:18:
    ../src/app/app_EnOcean.h:123:5: error: expected specifier-qualifier-list before 'D5_00_01'

    Donc voila pour mon problème, j'espère que c'est clair et je remercie ceux qui pourront m'aider !

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 805
    Billets dans le blog
    1
    Par défaut
    Salut

    Citation Envoyé par damien22530 Voir le message
    mais après avoir retourné mon problème dans tous les sens, je n'ai pas vraiment le choix...
    Il n'y a pas de mal à créer ses propres types, même dans des cas comme le tien...

    Citation Envoyé par damien22530 Voir le message
    Donc voila pour mon problème, j'espère que c'est clair et je remercie ceux qui pourront m'aider !
    Ton problème est tout à fait clair. Cela ne vient pas de tes structures qui, si elles sont bien définies dans le bon sens (à savoir de la plus profonde vers la plus générale) ne posent aucun soucis.
    Ton problème vient des types "BOOL" et "BYTE" qui ne sont pas connus.

    De mon coté j'ai repris tes structures (en remplaçant les types que je ne connaissais pas par des types standards) et ça compile très bien...
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <stdio.h>
     
    typedef struct {
        int    LRN;          
        int    CO;             
    } D5_00_01;
     
    typedef struct {
        char    MCMSB;          
        int    LRNB;          
        char    MCLSB;         
        int    MSGS;
    } D5_3F_00;
     
    typedef union {
        D5_00_01 d5_00_01;
        D5_3F_00 d5_3f_00;
    } DATA;
     
    typedef struct {
        char*   SenderID;             
        DATA    values;                
        char    func;                 
        char    type;                  
        char    manufacturerID;        
        char    status;                
    }SENSOR;
     
    int main()
    {
    	SENSOR toto;
    }

    Sinon ça ne te fais pas saigner les yeux toutes ces majuscules ??? Tu ne voudrais pas nommer tes types de façon plus conventionnelle (t_sensor par exemple) ainsi que tes noms de variables ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut
    Bonjour,


    D'accord oui merci ça fonctionne maintenant!
    En effet, mes nouveaux types n'était pas connus donc j'ai pu régler ça avec différents "include".


    Et pour ce qui est de la rédaction des types et variables, le projet n'est pas initialement de moi, je dois travailler dessus pour lui rajouter des fonctionnalités, j'ai donc respecté la façon d'écriture


    Je te remercie encore, ça m'a bien débloqué!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/03/2013, 09h47
  2. Réponses: 3
    Dernier message: 08/03/2011, 23h04
  3. C++ :error : expected ‘)’ before
    Par benjamin.p dans le forum Débuter
    Réponses: 9
    Dernier message: 24/02/2011, 18h51
  4. Réponses: 4
    Dernier message: 14/04/2010, 09h42
  5. Réponses: 2
    Dernier message: 17/12/2009, 02h11

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