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 :

Conflits entre mes structures


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut Conflits entre mes structures
    Bonsoir a vous,
    J'ai une première structure [Liste doublement chaînée] pour gérer ma File et une seconde pour gérer mon graphe [Liste simplement chaînée]

    Mais voila si je mets les mêmes noms pour les champs de ces deux structures a la compilation il me jette...
    J'ai donc voulu créer une bibliothèque dynamique pour y inclure ma gestion de File. Mais ca ne résout pas le problème...

    Je m'y prends mal et ca devrait marcher??? Ou il n'y pas de solution (j'en doute lol)

    Merci d'avance. Selon votre réponse, j'exposerais la procédure que j'ai suivi pour créer ma bibliothèque dynamique.

  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
    On est pas devins, mets du code.

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par line86 Voir le message
    Bonsoir a vous,
    J'ai une première structure [Liste doublement chaînée] pour gérer ma File et une seconde pour gérer mon graphe [Liste simplement chaînée]

    Mais voila si je mets les mêmes noms pour les champs de ces deux structures a la compilation il me jette...
    Il doit y avoir une autre raison. Présente le code en cause.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    Le code fonctionne parfaitement si je modifie le nom de mes champs pour l'une ou l'autre de mes structures.

    Voila mes fichiers avant modifications

    /* Fichier Graphe.c */
    #include "Graphe.h"
    #include "File.h"

    /* Fichier File.c */
    #include "File.h"

    /* Fichier Main.c */
    #include "Graphe.h"

    Faut il une fois la bibliotheque crée, laisser #include "File.h" dans le Fichier Graphe.c

    Merci pour votre aide

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par défaut
    Comme l'a dit muad'dib, on n'est pas devins.
    On ne sait pas ce qu'il y a dans tes *^$ù*ù de headers, ni quelles sont tes erreurs, etc.
    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.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    oui mais mon code est long... et il n'y a pas d'erreurs dedans... C'est pour ca que je ne vois pas l'intérêt de mettre mon code
    C'est juste une question que si mes champs sont identique, la compilation ne passe pas...et pour palier a ce problème je voulais créer une bibliothèque pour enlever ce conflit...
    Ainsi je pensais ne plus avoir a mettre le File.h et le conflit aurait disparu...
    Mais je pense que ca ne doit pas etre possible...
    Car ca revient un peu au même que le type bool qu'ils sont rajouté dans la norme je ne sais plus cb du c pour éviter tous conflits ils les avaient appeler avec une spécification spéciale non? lol je suis pas expert je m'avance peut etre un peu de trop lol desolé si c'est le cas...

    [edit] oui c'est gcc sous debian...

    Merci encore

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Si je me rappelle bien on peut avoir ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      struct a
     {
        int x ;
     } ;
     
     struct b 
     {
        struct a un_a ;
     };
    et utiliser indifféremment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      struct b un_b ;
     
          un_b.un_a.x = 4 ;
          un_b.x = 4 ;
    Ce qui fait qu'en nommant des membres de façon identique on peut avoir des erreurs de compilation.

    En règle générale il vaut mieux identifier chaque membre d'une structure avec un préfixe dérivé du nom de la structure (sauf en POO)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      struct element 
      {
         int ele_count ;
         char *ele_nom ;
      }
    Ca rend le code plus lisible.

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 968
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 968
    Par défaut
    Kio,
    Citation Envoyé par line86 Voir le message
    oui mais mon code est long... et il n'y a pas d'erreurs dedans... C'est pour ca que je ne vois pas l'intérêt de mettre mon code
    Il faut oser écrire ça.

    S'il n'y avait pas d'erreur, tu n'aurais pas besoin d'aide. CQFD.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Il faudrait voir les options du compilateur. C'est gcc ? Il me semble qu'il y a une option pour référencer directement les membres des structures imbriquées.

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

Discussions similaires

  1. Possibles conflits entre GL, GLAUX et GLUT
    Par barthelv dans le forum GLUT
    Réponses: 1
    Dernier message: 19/11/2004, 12h31
  2. Conflit entre bases de données
    Par BRODU dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2004, 11h40
  3. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  4. [Rave et base] liason entre mes 2 tables
    Par Pascal dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/06/2004, 17h19
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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