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 :

[Procédure statique] Déclaration


Sujet :

C

  1. #1
    Membre éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Par défaut [Procédure statique] Déclaration
    Hello

    Une petite question afin d'être au clair si ma façon de procéder est correcte :

    J'ai plusieurs couples de fichiers .h et .c, et je les utilise les uns dans les autres, classique finalement ('#include a.h' dans 'b.c' par exemple).
    Dans certains de ces modules (a.c par exemple), j'ai des fonctions qui leur sont propres et qui ne sont utilisées que par eux (donc par utilisé par 'b.c' dans l'exemple). Je déclare ces fonctions 'static' dans le .h, mais j'ai un avertissement à la compilation, comme quoi ma fonction est déclarée static mais jamais défini.

    Après réflexion, ceci est tout à fait logique et je déclare finalement mes fonctions en static mais dans le .c .

    Cette façon de faire me paraît correcte : Les fonctions destinées à être exportées sont déclarer dans le .h, et les fonctions uniquement destinées au module sont déclarées static dans le .c .

    Est-ce bien juste comme façon de faire ?

    Merci d'avance !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Oui,

    Voici ce que dit la FAQ
    http://c.developpez.com/faq/c/?page=...KEYWORD_static

    mais tu trouveras plus de détails dans les cours de programmation C : http://c.developpez.com/cours/

    Par défaut, lorsqu'une fonction est définie dans un fichier C/C++, elle peut être utilisée dans tout autre fichier pourvu qu'elle soit déclarée avant son utilisation. Dans ce cas, la fonction est dite externe. Il peut cependant être intéressant de définir des fonctions locales à un fichier, soit afin de résoudre des conflits de noms (entre deux fonctions de même nom et de même signature mais dans deux fichiers différents), soit parce que la fonction est uniquement d'intérêt local. Le C et le C++ fournissent donc le mot clé static qui, une fois placé devant la définition et les éventuelles déclarations d'une fonction, la rend unique et utilisable uniquement dans ce fichier. À part ce détail, les fonctions statiques s'utilisent exactement comme des fonctions classiques.

  3. #3
    Membre éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Par défaut
    Ok

    Merci beaucoup pour le lien ! C'est tip top !

  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 femtosa
    Après réflexion, ceci est tout à fait logique et je déclare finalement mes fonctions en static mais dans le .c .

    Cette façon de faire me paraît correcte : Les fonctions destinées à être exportées sont déclarer dans le .h, et les fonctions uniquement destinées au module sont déclarées static dans le .c .

    Est-ce bien juste comme façon de faire ?
    Ta reflexion est correcte.

    http://emmanuel-delahaye.developpez....ganiser_source
    http://emmanuel-delahaye.developpez.....htm#organiser

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

Discussions similaires

  1. [ZF 1.9] Appel de procédure avec déclaration
    Par Benoit7114 dans le forum Zend_Db
    Réponses: 2
    Dernier message: 05/03/2010, 11h06
  2. Réponses: 8
    Dernier message: 03/11/2006, 15h55
  3. Déclaration UTL_File procédure
    Par stos dans le forum Oracle
    Réponses: 5
    Dernier message: 23/05/2006, 09h27
  4. Déclaration de procédures dans un main
    Par sangei dans le forum Langage
    Réponses: 8
    Dernier message: 09/11/2005, 15h13
  5. Réponses: 9
    Dernier message: 09/11/2005, 11h53

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