Probleme Variable extern

Résolu
cs_darkwhite Messages postés 133 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 29 avril 2008 - 29 avril 2008 à 17:11
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 - 29 avril 2008 à 19:56
Salut à tous,
J'ai un fichier.c et j'ai declarer une variable au debut du code en extern double 
Et a la compilation il sort des erreurs comme si je n'avais pas declaré la variable du genre

  [Linker error] undefined reference to `n'

Et quand j'enleve l'attribut extern sa compile impec. Voila c'est pas grand chose mais comment je peux  garder le extern

3 réponses

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
29 avril 2008 à 17:36
Bonjour,

Le extern est là pour dire au compilateur : "Dans ce fichier, tu vas rencontrer l'utilisation d'une variable double n mais tu ne vas pas rencontrer la déclaration de cette variable ! c'est normal, c'est pas une erreur ! Cette variable a été déclarée dans un autre fichier et l'éditeur de liens saura retrouver son adresse et la placer dans le code de ce fichier."

Dans votre projet il faut que cette variable soit déclarée "pour de vrai" dans l'un des fichiers et être mis en extern dans ceux qui en ont besoin. C'est pour ça que ça marche quand vous supprimez extern, ça devient une vraie déclaration et non plus une simple information.

Jean-François
3
cs_darkwhite Messages postés 133 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 19:35
Merci pour votre reponse claire, precise et en plus qui parle à un compilateur !
A+
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
29 avril 2008 à 19:56
Il est bien bavard lui-même parfois !!! (souvent ???)
Alors on peut bien lui parler de temps en temps.

Quoiqu'ici c'est le linker qui est bavard. C'est lui qui ne trouve pas n, le compilateur a fait ce qu'on lui a demandé.

Jean-François
0
Rejoignez-nous