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 :

Problème de déclaration avec références croisées


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Problème de déclaration avec références croisées
    Bjr,

    J'ai un problème de déclaration... après vérification dans tous les sens, en simplifiant à l'extrême il se résume comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct A{
        B* myB;
    };
     
    struct B{
        A* myA;
    };
    que l'on pourrait appeler pble des références croisées.

    La solution que j'envisage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct A{
        void* myB;
    };
     
    struct B{
        A* myA;
    };
    agrémenté de cast à chaque reférencement de myB.

    Je trouve ça très "gore" mais je crains qu'il n'y ait pas de solution + propre.
    Qu'en pensez-vous ?

    N.B.Je suis sous VS2008, je ne crois pas que cela change grand chose ...

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Il suffit de déclarer les structures d'abord, de les définir après :

    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
    /* déclarations */
    struct A;
    struct B;
     
    /* définitions */
    struct A{
        struct B* myB;
    };
     
    struct B{
        struct A* myA;
    };
     
    /* utilisation */
    int main(void) 
    {
        struct B b;
        struct A a;
     
        return 0;
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Slt mabu, merci pour la réponse + rapide que l'éclair...
    Et encore + pour la justesse de ton propos.

    Je n'avais jamais été confronté à la contrainte de déclarer des structures avant de les définir. Je les ai toujours définies directement. Ca me fait une nvelle "guru méditation".
    Je ne serai pas étonné qu'elle me résiste un bon bout de temps!

    Encore merci. Slt. A+

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

Discussions similaires

  1. enums avec références croisées
    Par lnotray dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2010, 11h45
  2. Problème de déclaration avec Quartz
    Par yaya0057 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 28/09/2009, 10h50
  3. Problème de tri avec analyse croisée
    Par drthodt dans le forum Access
    Réponses: 2
    Dernier message: 18/10/2005, 17h23
  4. Réponses: 11
    Dernier message: 29/04/2005, 20h45
  5. Problème de déclaration de segment avec use32
    Par le mage tophinus dans le forum Assembleur
    Réponses: 2
    Dernier message: 10/01/2003, 11h17

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