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 :

mon compilo n'accèpte pas unsigned!


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut mon compilo n'accèpte pas unsigned!
    bonjour,

    j'ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    src/Bmp\Anim1.h:1: error: syntax error before "char"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const unsigned char anim1[]={0,20,....
    et si je supprimer l'unsigned de la déclaration il l'accèpte!!!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. Quel compilo ? (nom, plate-forme, version, etc.)
    2. On peut voir ce qu'il y a AVANT cette ligne ?
      Visiblement, c'est la première ligne du header. Dans ce cas, peut-on voir ce qu'il y a à la fin du header précédent ?
    3. Tu n'as pas quelque part une erreur de typedef remplacé par un mauvais #define ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    Compilo : gcc 3.4.3
    Plate-forme : windows
    Le fichier anim1.h contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    const unsigned char anim1[]={
    0,20,…..
    }
    le header précédent contient
    Code : 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
     
    #ifndef _CPS_H_
    #define _CPS_H_
     
    #include "StrucGl.h"
    #include "Nucleus.h"
    #include "IntCons.h"
    #include "erreurs.h"
    #include "Dates.h"
    typedef struct _CartePS                  TCartePS;
    UINT16 EI96_LectureCartePS( TCartePS *cps, char *CodePS);
     
     
    UINT16 EncapsulePssLectureCPS(UINT8 *buffer,UINT8 *CodePS);
    void TraiteReponseLectureCartePS(TCartePS *cps,UINT8 *MessageRetour,UINT16 lgMessage);
     
     
    #endif

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Salut, essaye ca pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #undef unsigned
    const unsigned char anim1[]={
    0,20,…..
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    apparament ça marche, j'ai d'autres erreurs , mais pas l'erreur d'avant,
    tu peux me donner une ptt explication sur ce que fait ce #undef unsigned
    parmi ces erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    src/EFT_MOT.c:9: error: parse error before "UINT8"
    pour la définition suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    typedef struct
    {
    	UINT8 Cpt ;
    	UINT8 EtatFort ;
    	UINT8 EtatFaible ;
    	UINT8 lgAtr ;
    	UINT8 Atr[32] ;
    	UINT8 Iin[5] ;
    	UINT8 Pix[2] ;
    } tContexte ;
    !!!!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    typedef struct _Contexte
    {
    	UINT8 Cpt ;
    	UINT8 EtatFort ;
    	UINT8 EtatFaible ;
    	UINT8 lgAtr ;
    	UINT8 Atr[32] ;
    	UINT8 Iin[5] ;
    	UINT8 Pix[2] ;
    } tContexte ;
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    hu hu, ça marche pas!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    qu'y a-t-il juste avant ?
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    c la prmière définition dans mon fichier .c:
    Code : 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
    33
     
    typedef struct 
    {
    	UINT8 Cpt ;
    	UINT8 EtatFort ;
    	UINT8 EtatFaible ;
    	UINT8 lgAtr ;
    	UINT8 Atr[32] ;
    	UINT8 Iin[5] ;
    	UINT8 Pix[2] ;
    } tContexte ;
     
    /*!< contexte CPS*/
    static tContexte _Contexte;
     
    /** \brief Fonction de préparation du contexte de carte pour la première connexion (Spécif EFT20)
     * 
     * @return void
     *
     **/
    void PreparerContexte(void)
    {
    	if (_Contexte.lgAtr[3]==0x00){    /* Contexte par defaut */
    		_Contexte.Cpt=0x00;
    		_Contexte.EtatFort=0xAF;
    		_Contexte.EtatFaible=0x30;
    		_Contexte.lgAtr=0;
    		memset(_Contexte.Atr,0x00,32);
    		memset(_Contexte.Iin,0x00,05);
    		memset(_Contexte.Pix,0x00,02);
    	} 
    }
    ............

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par moon93
    apparament ça marche, j'ai d'autres erreurs , mais pas l'erreur d'avant,
    tu peux me donner une ptt explication sur ce que fait ce #undef unsigned
    Citation Envoyé par Ton maître
    une erreur de typedef remplacé par un mauvais #define ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Citation Envoyé par moon93
    c la prmière définition dans mon fichier .c:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct 
    {
    	UINT8 Cpt ;
    	UINT8 EtatFort ;
    	UINT8 EtatFaible ;
    	UINT8 lgAtr ;
    	UINT8 Atr[32] ;
    	UINT8 Iin[5] ;
    	UINT8 Pix[2] ;
    } tContexte ;
    Il y a forcément quelque chose avant sinon UINT8 ne peut pas être compilé.
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  12. #12
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Ajoute devant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define UINT8 unsigned char

  13. #13
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Ti-R
    Ajoute devant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define UINT8 unsigned char
    Non, il faut utiliser un typedef pour definir un nouveau type proprement. La longue liste d'erreurs rencontrees par moon93 est justement due a un usage abusif de #define -- a la fin, son unsigned est tres certainement re-defini a l'arrache, avec peut-etre un ; qui traine.

    moon93: il faut etre rigoureux dans la definition et l'utilisation de tes nouveaux types, eviter de definir un nombre trop important de nouveaux types qui se referent a la meme chose, et se rappeler que le C fait la difference entre minuscules et majuscules.

    Medinoc: evite de te citer en mettant 'Ton maître a écrit :'. C'est un forum d'entraide, pas de tutorat.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    oui, ta raison, j'ai oublié un include
    merci

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    merci DaZumba pour ces conseils

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    DaZumba : Je plaisantais, je suis toujours un peu sarcastique quand je dois me citer moi-même...
    Une manière d'extérioriser la frustration de ne pas avoir été lu la première fois...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef unsigned char UINT8;
    C'est pas de ma faute si dans un de ses fichiers unsigned est "defined" à nouveau

    typedef est plus propre mais des #define ne font pas de mal non plus si c'est correctement utilisé, comme tout...

    Mais c'est sur que j'aurais du proposer typedef...

  18. #18
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Médinoc
    Une manière d'extérioriser la frustration de ne pas avoir été lu la première fois...
    Ah ca, je suis bien d'accord avec toi.

    Citation Envoyé par Ti-R
    typedef est plus propre mais des #define ne font pas de mal non plus si c'est correctement utilisé
    Ben, comme typedef signifie 'type definition', je ne vois pas pourquoi utiliser autre chose pour definir un type...

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ti-R : Et comment évites-tu ce genre de problème avec les #define ?
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #define PINT int *
     
    void f(void)
    {
    int tab[10];
    const PINT pInt = tab;
    }
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef int * PINT;
     
    void f(void)
    {
    int tab[10];
    const PINT pInt = tab;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  20. #20
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Je dois être mal réveillé, car je ne vois pas de problème...

Discussions similaires

  1. Réponses: 10
    Dernier message: 29/03/2009, 17h51
  2. mon compilo ne reconnait pas le type GLubyte
    Par superC dans le forum OpenGL
    Réponses: 4
    Dernier message: 23/01/2007, 19h39
  3. Mon compilo ne reconnait pas les UINT8
    Par baert dans le forum C++
    Réponses: 11
    Dernier message: 08/02/2006, 16h08
  4. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26
  5. [IB71] mon Blob ne marche pas correctement
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 2
    Dernier message: 17/09/2003, 14h03

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