Variables externes (c)
echantillon
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
bonjour,
j'ai un problème avec mes variables externes, des float, petit exemple :
dans un fichier 1:
dans un fichier 2:
j'ai un problème avec mes variables externes, des float, petit exemple :
dans un fichier 1:
... int i = "100"; float f = "1.56" ...
dans un fichier 2:
...
extern i,f;
...
printf ("%d",i); // me renvoie 100
printf("%f",f); // me renvoie toujours 0,000000
...
A voir également:
- Variables externes (c)
- Bash addition 2 variables ✓ - Forum Shell
- Lecteurs de dvd externes pour ordinateurs portables - Forum PC portable
- Ce classeur comporte des liaisons avec une ou plusieurs sources externes ✓ - Forum Excel
- Nuage de points excel 4 variables - Forum Excel
- Plusieurs séries, nuage en points ✓ - Forum Bureautique
3 réponses
"x" // type const char*
Donc, lorsque tu fait int i="100" je suis même étonner que ça fonctionne.
Tu utilise peut être un vieux compilo, mais normalement les extern doivent être typer.
en C pas classique, mais dans le temps ça passait, une variable non typé était un entier (un peu comme en fortran)
Donc, extern i,f; <=> extern int i,f;
Ensuite, tu lit un float comme un entier, donc ça doit pas lui plaire.
Ce qu'il faut faire :
extern int i;
extern float f;
Le compilateur a besoin de connaitre le type d'une variable, dans ton cas il ne le connait réellement qu'à l'édition des liens. D'où un typage dans chaque fichier (comme pour les fonctions)
"Donc, lorsque tu fait int i="100" je suis même étonner que ça fonctionne. "
oulà donc non !! j'ai écrit trop vite, expéditivement même.
j' écrit ça :
int i = 100;
et non avec des " " .
j'utilise gcc 3.4.6 et ça marche.
Ce que je ne savais pas en fait, c'était qu'il fallait préciser le type quand on fait appel a une variable externe .
avec ça mes float ne déconnent plus ;)
je vais aussi préciser le type de mes int dans la déclaration extern; ca a l'air plus "correct".
merci ;)
oulà donc non !! j'ai écrit trop vite, expéditivement même.
j' écrit ça :
int i = 100;
et non avec des " " .
j'utilise gcc 3.4.6 et ça marche.
Ce que je ne savais pas en fait, c'était qu'il fallait préciser le type quand on fait appel a une variable externe .
avec ça mes float ne déconnent plus ;)
je vais aussi préciser le type de mes int dans la déclaration extern; ca a l'air plus "correct".
merci ;)