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 passage de structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Par défaut Problème de passage de structure
    Bonjour,
    Je souhaite passer une structure d'un fichier .c à un autre fichier .c
    Ma structure est définie comme cela dans un fichier .h :
    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
     
    struct  x_note
    { unsigned ton     : 1 ;    /*  1  do    tonique              */
      unsigned ton_aug : 1 ;    /*  2  do#   tonique augmentée    */
      unsigned sec_dim : 1 ;    /*  2  réb   seconde diminuée     */
      unsigned sec     : 1 ;    /*  3  ré    seconde              */
      unsigned sec_aug : 1 ;    /*  4  ré#   seconde augmentée    */
      unsigned tie_dim : 1 ;    /*  4  mib   tierce diminuée      */
      unsigned tie     : 1 ;    /*  5  mi    tierce               */	   
      unsigned qua     : 1 ;    /*  6  fa    quarte               */
      unsigned qua_aug : 1 ;    /*  7  fa#   quarte augmentée     */
      unsigned qui_dim : 1 ;    /*  7  solb  quinte diminuée      */
      unsigned qui     : 1 ;    /*  8  sol   quinte               */
      unsigned qui_aug : 1 ;    /*  9  sol#  quinte augmentée     */
      unsigned six_dim : 1 ;    /*  9  lab   sixte diminuée       */
      unsigned six     : 1 ;    /* 10  la    sixte                */
      unsigned six_aug : 1 ;    /* 11  la#   sixte augmentée      */
      unsigned sep_dim : 1 ;    /* 11  sib   septième mineure     */
      unsigned sep     : 1 ;    /* 12  si    septième             */
    	 } ;
    typedef struct                       
    	 { char   nom[10]      ;
    	   struct x_note note  ;
    	 } defposa
    Dans un fichier .c je remplis la structure en lisant un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    defposa posa ; 
    ... 
    dessin_note_accord (HWND hDessin, HDC hdc, int note_radio, int alter_radio, int acc_dlg  )
    ...
    lg_lue_pa=_lread(hFileficpa, (LPSTR) &posa, sizeof(posa) );
    Je veux maintenant passer cette structure à un autre fichier .c mais je n'y arrive pas.
    Merci de votre aide

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

    Citation Envoyé par azimut2 Voir le message
    Je veux maintenant passer cette structure à un autre fichier .c mais je n'y arrive pas.
    Je pense que tu confonds fichier et fonction.

    Pour faire dialoguer deux modules C (fichiers .c), le plus simple est de déclarer les fonctions disponibles :

    Code def.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct  x_note
    {  /* ... */	 } ;
    typedef struct                       
    	 { char   nom[10]      ;
    	   struct x_note note  ;
    	 } defposa;
    Code afficher.h : Sélectionner tout - Visualiser dans une fenêtre à part
    void affiche_struct(defposa posa);
    Code afficher.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "afficher.h"
    #include <stdio.h>
    void affiche_struct(defposa posa){
        printf("ton = %d\n", posa.note.ton);
        printf("ton_aug = %d\n", posa.note.ton_aug);
        printf("sec = %d\n", posa.note.sec);
        /* ... */
    }
    Code read.h : Sélectionner tout - Visualiser dans une fenêtre à part
    void read_struct(void);
    Code read.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "read.h"
    #include "afficher.h"
    void read_struct(void){
        defposa posa;
        _lread(hFileficpa, &posa, sizeof(posa));
     
        /* appel de la fonction de l'autre module */
     
        affiche_struct(posa);
     
    }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    dans toto.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    defposa posa ; 
    ... 
    dessin_note_accord (HWND hDessin, HDC hdc, int note_radio, int alter_radio, int acc_dlg  )
    ...
    lg_lue_pa=_lread(hFileficpa, (LPSTR) &posa, sizeof(posa) );
    et dans titi.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern defposa posa;
    titi.c utilisera la structure déclarée et initialisée dans toto.c

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/06/2010, 10h58
  2. [Activex] Passage de Structure
    Par KPitN dans le forum MFC
    Réponses: 2
    Dernier message: 07/03/2005, 14h05
  3. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48
  4. problème de passage de texte avec getvariable
    Par VincentB dans le forum Flash
    Réponses: 2
    Dernier message: 12/01/2004, 18h35
  5. Problème de rangement de structure dans un fichier ...
    Par Freeze dans le forum C++Builder
    Réponses: 8
    Dernier message: 16/12/2003, 16h46

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