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 :

Communication entre 2 fichiers .c pas dans le meme dossier grace a un fichier .h


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Communication entre 2 fichiers .c pas dans le meme dossier grace a un fichier .h
    salut a tous

    voila mon petit souci

    j'ai un fichier .c qui appelle dans son main une fonction "fct_calcul()" située dans un autre fichier .c

    fichier_principal.c
    #include "fichier_secondaire.c"
    ...
    void main ()
    {
    fct_calcul()
    }

    fichier_secondaire.c

    "void fct_calcul()
    {
    blablabla
    }

    jusque là pas de souci a la compil



    maintenant ce que je voudrais, c'est placé mon fichier principal dans un dossier et le secondaire dans un autre et relayer l'appel de la fonction par un fichier .h situé entre les 2 dossier


    dossier
    relais.h
    --> rep1
    -->principal.c
    --> rep2
    -->secondaire.c

    comment faire ? on m'a parlé d'une fonction utilisant "extern", j'ai aussi testé en déclarant le prototype de ma fonction dans le .h mais ca marche pas.

    on m'a aussi parlé de modifier les propriétés en "forcant les include" avec /FI dans les paramètres C/C++mais j'ai pas reussi a le faire fonctionner.

    merci à tous ceux qui m'aideront

  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
    Déjà, on inclut pas un fichier .c...
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    pour le moment j'ai

    dossier 1

    secondaire.h avec

    soit la déclaration de mon prototype


    secondaire.c avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void fct_calcul()
    {
    blablabla
    }

    et le dossier 2 avec
    principal.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include "../dossier1/secondaire.h"
     
    int main()
    {
    fct_calcul();
    }

  4. #4
    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

    Eh bien la seule façon de faire mieux, c'est d'ajouter des chemins d'inclusion au compilateur (sous Visual, c'est dans les options du projet Properties -> Configuration properties -> C/C++ -> General -> Additional include directories).
    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.

  5. #5
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    Inclure un fichier .c , c'est déjà pas une bonne chose. Il faut créer un fichier .h, avec seulement l'entête de ta fonction fct_calcul().
    Dans ton fichier secondaire, tu inclus ton fichier .h.
    Et après, pour faire appel à la fonction dans le fichier principal, tu inclus le .h.
    Tu peux compiler séparement ton fichier secondaire .c (si tu utilises gcc, c'est gcc -c, qui te donne un fichier .o).

    Par défaut, toutes les fonctions sont 'extern'. Tu n'as pas besoin de rajouter
    ce mot clé devant l'entête de la fonction.
    En espérant t'avoir apporté quelques éléments de réponse...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    désolé Médinoc , maintenant c'est corrigé

    je suis sous visual

    super la config ca marche

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/08/2010, 12h01
  2. Copier un fichier dans chaque sous-dossier grace a command !
    Par k3vin dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/12/2009, 17h15
  3. héritage d'une classe pas dans le meme package
    Par marry dans le forum Général Java
    Réponses: 14
    Dernier message: 07/05/2009, 18h14
  4. copier tous les fichiers sans extension dans un meme repertoire
    Par soussou80 dans le forum Administration système
    Réponses: 1
    Dernier message: 26/03/2009, 13h02
  5. Réponses: 6
    Dernier message: 29/06/2007, 10h38

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