Re: Déclaration extern

Liste des GroupesRevenir à fcl c  
Sujet : Re: Déclaration extern
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.c
Date : 17. Dec 2023, 22:57:53
Autres entêtes
Organisation : There's no cabale
Message-ID : <ulnncj$22kl$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Bonjour,

Le 17/12/2023 17:12, Thomas Nemeth a écrit :
 
    Récemment je suis tombé sur une remarque d'un collègue à propos
    du mot-clé "extern". Il me soutenait qu'il faut le mettre sur
    les déclarations de fonctions exportées dans les headers. ie:
 
    Fichier .c :
 
        int toto(void)
        {
            return 0;
        }
 
    Fichier .h :
 
        extern int toto(void);

Je n'ai malheureusement pas de pointeur vers une doc officielle à te donner,
alors si c'est ça que tu cherches je suis désolé de ne pas pouvoir t'aider.

Je peux malgré tout donner mon avis, basé à la fois sur la logique et sur ma
propre pratique du langage C.

Le mot-clé extern est utile pour une variable, car selon qu'on la déclare ou
non extern le compilateur saura s'il doit réserver de la mémoire (sans extern)
ou s'il sait que la mémoire sera réservée ailleurs et que ce sera résolu par
l'éditeur de lien (avec extern).

Mais dans le cas d'une fonction, vu que la déclaration dans un .h ne peut pas
réserver de la mémoire pour du code qui n'est pas défini dans ce même .h,
le mot-clé extern est optionnel car implicite.

En résumé : tu fais bien comme tu veux. Soit tu mets ce mot-clé extern par
souci esthétique, pour faire avec les fonctions comme avec les variables,
soit tu ne le mets pas parce qu'il ne sert à rien.



--
Olivier Miakinen

Date Sujet#  Auteur
17 Dec 23 * Déclaration extern6Thomas Nemeth
17 Dec 23 `* Re: Déclaration extern5Olivier Miakinen
17 Dec 23  `* Re: Déclaration extern4Olivier Miakinen
18 Dec 23   +* Re: Déclaration extern2Thierry Pinelli
18 Dec 23   i`- Re: Déclaration extern1Thomas Nemeth
18 Dec 23   `- Re: Déclaration extern1Thierry Pinelli

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal