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 :

probleme avec les typedef structure


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Par défaut probleme avec les typedef structure
    bonsoir, voici mon code:

    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
    34
    35
    36
    37
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    #define TAILLE_USERNAME 32
    #define TAILLE_NOM 30
    #define TAILLE_CLASSE 10
     
    typedef struct matricule
    {
    	char username[TAILLE_USERNAME];
    	char nom_eleve[TAILLE_NOM];
    	char prenom_eleve[TAILLE_NOM];
    	char classe[TAILLE_CLASSE];
    }eleve;
     
    typedef struct liste_chainee
    {
    	struct liste_chainee *suivant;
    	struct matricule eleve;
    } LISTE;
     
    void affichage (struct liste_chainee *debut)
    {
    	struct liste_chainee *p;
     
    	p = debut;
    	while (p !=NULL)
    	{
    		printf ("username : %s\n", p->eleve.username);
    		printf ("nom : %s\n", p->eleve.nom_eleve);
    		printf ("prenom : %s\n", p->eleve.prenom_eleve);
    		printf ("classe : %s\n", p->eleve.classe);
    		printf("*************************************\n");
    		p = p->suivant;
    	}
    }
    or lorsque je compile, il y a des erreurs et le compilateur me dit " : error C2037: la partie gauche de 'eleve' indique un struct/union non défini 'liste_chainee' "
    je ne comprends pas pourquoi, quelqu'un pourrait il m'aider svp???...

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct matricule eleve;
    Change le nom de la variable. Tu ne peux plus utiliser eleve comme nom de variable depuis que tu l'as défini comme type via le typedef précédent.
    De plus pourquoi définir des types si tu ne les utilises pas ensuite? Il serait plus simple d'écrire

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    La vérité est ailleurs.
    Ton code compile chez moi sans problème (avec Visual Express et gcc).

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par muad'dib Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct matricule eleve;
    Change le nom de la variable. Tu ne peux plus utiliser eleve comme nom de variable depuis que tu l'as défini comme type via le typedef précédent.
    De plus pourquoi définir des types si tu ne les utilises pas ensuite? Il serait plus simple d'écrire
    Le conflit est normalement géré par le compilo, mais effectivement ce détail m'avait échappé. Mieux vaut éviter.

  5. #5
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Chez moi également avec gcc ça compile, mais sur un autre compilateur ça peut être un problème.

    Quel compilateur utilises-tu ? Quel est le reste du code ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Par défaut
    c'est sous visual studio en C++ (mais je code en C...)

  7. #7
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Et donc tu as essayé en changeant le nom de la variable ?....

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Citation Envoyé par claire_cartier Voir le message
    c'est sous visual studio en C++ (mais je code en C...)
    Si tu codes en C, compile en C avec Visual Studio.
    Si tu as un Visual assez récent, tu peux renommer ton fichier en .c directement depuis l'explorateur de projet.

    Pour vérifier que tu compiles bien en C, tu peux ajouter ceci en début de fichier:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef __cplusplus
    #error This file requires a C compiler
    #endif
    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.

Discussions similaires

  1. Probleme avec les '[ ]' et les '*' dans une structure
    Par lassault1 dans le forum Débuter
    Réponses: 18
    Dernier message: 11/04/2010, 13h38
  2. probleme avec les structures
    Par sourir-d'enfer dans le forum Débuter
    Réponses: 4
    Dernier message: 10/01/2010, 17h01
  3. probleme avec les structures et pointeurs
    Par dicovid dans le forum C
    Réponses: 6
    Dernier message: 02/06/2007, 20h01
  4. Probleme avec les structures
    Par hidies dans le forum MATLAB
    Réponses: 5
    Dernier message: 16/05/2007, 16h41
  5. probleme avec les structures
    Par salif98 dans le forum C
    Réponses: 3
    Dernier message: 27/08/2006, 01h30

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