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 :

Ou sont mes fonctions ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut Ou sont mes fonctions ?
    Bonjour à tous,

    J'ai une petite question d'architecture. J'étudie un programme open source (Asterisk). Je m'intéresse particulièrement au fichier chan_mgcp.c.

    Le problème est que je ne trouve pas de fichier chan_mgcp.h contenant les fonctions développées dans le .c

    Ma question est donc la suivante : Comment le programme sait où aller chercher les fonctions du .c ??

    Merci d'avance pour vos réponses !

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Peut-être que le fichier porte un autre nom ? Dans le fichier source qui utilise ces fonctions quels sont les headers include ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    Et bien, il y en a beaucoup.... Comment savoir dans quel fichier sont définis ces fonctions ?

    Quand je fais une recherche du contenu des fichiers avec une nom d'une fonction de mon .c, je n'obtiens comme réponse que le fichier .c en question... Il est pourtant bien implémenté quelque part....

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gdpasmini Voir le message
    Et bien, il y en a beaucoup.... Comment savoir dans quel fichier sont définis ces fonctions ?

    Quand je fais une recherche du contenu des fichiers avec une nom d'une fonction de mon .c, je n'obtiens comme réponse que le fichier .c en question... Il est pourtant bien implémenté quelque part....
    Un fichier .c est censé contenir la définition (l'implémentation) des fonctions.

    Au fait, on est bien d'accord sur le vocabulaire ?

    http://emmanuel-delahaye.developpez....tm#definitions

    EDIT : OK, j'ai enfin compris ta question... Les .c qui implémentent les fonctions ne font pas forcément partie de ton projet. En effet, le plus souvent, quand on utilise une bibliothèque tierce (comme asterisk), on a que les .h (interfaces) et les .a ou .lib (implémentation compilée en code machine encore appelée 'bibliothèque'...) qui dont liés directement au projet (gcc: -lxxx)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    Oui oui pardon pour mon manque de précision. Je ne trouve pas la déclaration des fonctions.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gdpasmini Voir le message
    Oui oui pardon pour mon manque de précision. Je ne trouve pas la déclaration des fonctions.
    Euh, les déclarations (ou plutôt les prototypes séparés) sont dans les fichiers d'interface (.h).

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    Ok en fait les déclarations sont faites via la compilation ou non un include "...h", J'ai bien compris ?

    Donc si je voulais reprendre le .c pour l'intégrer dans un programme personnel, il faudrait que je créé mon propre .h pour implémenter ses fonctions ? C'est bien ça ?

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gdpasmini Voir le message
    J'ai une petite question d'architecture. J'étudie un programme open source (Asterisk). Je m'intéresse particulièrement au fichier chan_mgcp.c.

    Le problème est que je ne trouve pas de fichier chan_mgcp.h contenant les fonctions développées dans le .c
    Tu parles des prototypes des fonctions publiques ? Il sont certainement dans un .h, mais qui ne s'appelle pas forcément chan_mgcp.h.
    Ma question est donc la suivante : Comment le programme sait où aller chercher les fonctions du .c ??
    Ca, c'est totalement une autre question. Un .h ne sert pas à indiquer "Comment le programme sait où aller chercher les fonctions du .c", mais à fournir au compilateur les moyens d'écrire des appels de fonctions corrects, c'est avec le bon nombre de paramètres et le bon type de paramètres et de retour.

    http://emmanuel-delahaye.developpez....htm#production
    http://emmanuel-delahaye.developpez.....htm#prototype
    http://emmanuel-delahaye.developpez....m#bibliotheque

Discussions similaires

  1. Ou sont mes enregistrements à partir de 8126 ?
    Par AIexis dans le forum Requêtes
    Réponses: 7
    Dernier message: 30/01/2006, 14h03
  2. [VB.net] Où sont mes contrôles ?
    Par waici dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2006, 09h15
  3. [MFC] Ou sont mes boutons de toolbar?
    Par foxblue dans le forum MFC
    Réponses: 3
    Dernier message: 08/09/2005, 14h42
  4. URPMI - Où sont mes programmes ?
    Par Dnx dans le forum Mandriva / Mageia
    Réponses: 2
    Dernier message: 25/09/2004, 21h57

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