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 :

Création d'une bibliothèque.


Sujet :

C

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Points : 135
    Points
    135
    Par défaut Création d'une bibliothèque.
    Bonjour !

    J'ai quelques fonctions que j'utilise très souvent et je voudrais les regrouper dans une bibliothèque statique.

    J'ai commencé l'écriture de cette dernière mais seulement, j'ai une question.

    Si je mets static devant mes fonctions (comme ça pas besoin de .h), est-ce que je pourrais acceder aux fonctions de ma bibliothèque dans tout les fichiers d'un projet qui l'utilise ?

    Merci d'avance.

    Kr00pS

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Le mot cle static pour une fonction n'a rien a voir avec une bibliotheque statique. Une fonction qualifiee de static est privee a l'unite de compilation en cours. Une bibliotheque est une collection de fichiers objets.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Points : 135
    Points
    135
    Par défaut
    Je sais que le mot-clé static n'a rien avoir avec une bibliothèque statique, ce n'est pas ça ma question.

    C'est peut-être pas assez clair, si c'est le cas, désolé.

    Une fonction static ne peut être utilisé que dans le fichier où elle se situe, c'est bien ça ?

    Donc, est-ce que je peux mettre static devant mes fonctions (comme ça, je n'ai pas besoin de créer un fichier .h) ? Et est-ce que ces fonctions seront accessibles dans tous les fichiers d'un projet où la bibliothèque est liée ?

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Kr00pS
    Une fonction static ne peut être utilisé que dans le fichier où elle se situe, c'est bien ça ?
    Oui
    Donc, est-ce que je peux mettre static devant mes fonctions (comme ça, je n'ai pas besoin de créer un fichier .h) ?
    Faudrait qu'il y en ai quelques unes qui soient non statiques, histoire de pouvoir les appelées d'un code extérieur...

    Et est-ce que ces fonctions seront accessibles dans tous les fichiers d'un projet où la bibliothèque est liée ?
    Ben non... Fonctions statiques -> inaccessible par un code extérieur...

    Jc

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Points : 135
    Points
    135
    Par défaut
    Merci beaucoup, c'est bien ce que je pensais.

    Problème résolu.

  6. #6
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    De toute facon, tu vas devoir creer un fichier entete pour decrire l'interface offerte par la bibliotheque. Je ne comprends pas cet empressement a ne pas faire de fichier entete. C'est pas tres dur ni tres long...
    Si je mets static devant mes fonctions (comme ça pas besoin de .h), est-ce que je pourrais acceder aux fonctions de ma bibliothèque dans tout les fichiers d'un projet qui l'utilise ?
    Rigoureusement parlant, non. Tu as besoin d'un fichier entete pour toute fonction utilisee hors de son unite de compilation.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Kr00pS
    Si je mets static devant mes fonctions (comme ça pas besoin de .h), est-ce que je pourrais acceder aux fonctions de ma bibliothèque dans tout les fichiers d'un projet qui l'utilise ?
    Par définition, non. Une bibliothèque c'est toujours
    • Une interface (.h)
    • Une implémentation (.c -> .a ou .lib)

    http://emmanuel-delahaye.developpez....m#bibliotheque
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Points : 135
    Points
    135
    Par défaut
    Merci pour vos réponses, j'ai reussi à compiler et utiliser ma bibliothèque.

    J'ai encore une question, les inclusions standards necessaires à la bibliothèque, je les mets dans les .c ou .h de ma bibliothèque ? (Dans la bibliothèque de Emmanuel Delahaye les inclusions standards ne sont ni dans les .c ni dans les .h)

    Kr00pS

  9. #9
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Si un fichier entete standard est necessaire dans ton fichier entete (exemple: ta fonction utilise un argument de type FILE), alors tu dois inclure explicitement le fichier entete standard.
    Si les fonctions standard ne servent qu'a la bidouille interne, alors il ne sont inclus que dans le .c d'implementation.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Kr00pS
    J'ai encore une question, les inclusions standards necessaires à la bibliothèque, je les mets dans les .c ou .h de ma bibliothèque ? (Dans la bibliothèque de Emmanuel Delahaye les inclusions standards ne sont ni dans les .c ni dans les .h)
    Uniquement aux endroits où ils sont nécessaires. (.c, .h, peut importe). C'est ton compilateur qui te le dira si il est correctement configuré.
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Membre éprouvé Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Points : 1 210
    Points
    1 210
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Par définition, non. Une bibliothèque c'est toujours
    • Une interface (.h)
    • Une implémentation (.c -> .a ou .lib)

    http://emmanuel-delahaye.developpez....m#bibliotheque
    Pour les .a ou .lib tu veux dire bibliothèque statique

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gnto
    Pour les .a ou .lib tu veux dire bibliothèque statique
    La partie implémentation de celle-ci, oui.
    Pas de Wi-Fi à la maison : CPL

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

Discussions similaires

  1. Algorithme de création d'une bibliothèque de mots
    Par javass dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/03/2010, 11h19
  2. Création d'une bibliothèque utilisant les sockets
    Par PouerK dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 26/02/2008, 07h43
  3. Création d'une bibliothèque
    Par nabilfaouzi dans le forum C
    Réponses: 5
    Dernier message: 15/02/2008, 17h30

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