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 :

le mot clef extern ?


Sujet :

C

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut le mot clef extern ?
    Bonjour à tous,
    j'ai lu la doc sur developpez.com concernant l'explication du mot clef externe, mais qui me semble toujours pas clair.
    "extern" est bien utilisé pour déclarer dans un fichier ficA.h une fonction définie dans ficA.c afin de pouvoir l'utiliser dans un autre ficB.c ! (corrigez moi si ce n'est pas le cas ).
    Cependant j'ai trouvé le mot clef extern dans la définition d'une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern int la_fonction(arg1, arg2, ..) {
            cors de la fonction ;
    }
    qu'est ce que cela signifie ... ? Je suppose alors que la définition de la fonction doit se faire aussi en extern ( dans ficA.c ) ...

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par ikuzar Voir le message
    j'ai lu la doc sur developpez.com concernant l'explication du mot clef externe, mais qui me semble toujours pas clair.
    "extern" est bien utilisé pour déclarer dans un fichier ficA.h une fonction définie dans ficA.c afin de pouvoir l'utiliser dans un autre ficB.c ! (corrigez moi si ce n'est pas le cas ).
    C'est tout bon

    Citation Envoyé par ikuzar Voir le message
    Cependant j'ai trouvé le mot clef extern dans la définition d'une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern int la_fonction(arg1, arg2, ..) {
            cors de la fonction ;
    }
    qu'est ce que cela signifie ... ? Je suppose alors que la définition de la fonction doit se faire aussi en extern ( dans ficA.c ) ...
    Ce n'est pas obligatoire effectivement de rappeler le mot clé extern dans le .c. A mon avis, c'est uniquement pour rester cohérent entre le .c et le .h
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 448
    Points
    448
    Par défaut
    En effet, le mot clé extern devant une fonction indique juste que la fonction va être utilisé par un autre module, mais ce n'est pas obligatoire.

    Si on veut être totalement rigoureux dans un programme en C, il faut soit mettre le mot-clé extern (la fonction sera visible en dehors du module, et dans ce cas, il faut inclure le prototype de la fonction dans le .h), soit le mot-clé static (la fonction n'est visible que dans le module où elle est définie).

  4. #4
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    C'est aussi une déclaration de fonction et comme le mot clé extern est implicite pour les déclarations de fonctions il suffisait d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int la_fonction(arg1, arg2, ..) {
            cors de la fonction ;
    }
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut le mot clef extern
    Ok merci pour vos réponses.

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

Discussions similaires

  1. Mot-clef extern
    Par lucieb dans le forum C++
    Réponses: 5
    Dernier message: 20/03/2015, 09h19
  2. Passage de C++ à Java (mot clef extern)
    Par grodwar dans le forum Langage
    Réponses: 5
    Dernier message: 05/05/2007, 13h06
  3. clefs externe sous access
    Par mahboub dans le forum Access
    Réponses: 2
    Dernier message: 24/10/2005, 22h00
  4. mot clef sql pour nom de champ
    Par bobinou007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 13h21

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