Rechercher : dans
Par :

Variables externes (c)

Dernière réponse le 22 déc 2006 à 16:39:42 echantillon, le 22 déc 2006 à 11:16:26 
 Signaler ce message aux modérateurs

Bonjour,

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
...
Configuration: Linux
Firefox 2.0

Meilleures réponses pour « variables externes (c) » dans :
Les variables en C++ Voir Les variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Langage C++ - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C++ sont typées, c'est-à-dire que les données contenues dans...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...

1

Char Snipeur, le 22 déc 2006 à 12:49:23

"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) Salutation !
Char Snipeur

Répondre à Char Snipeur

2

echantillon, le 22 déc 2006 à 13:30:19

"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 ;)

Répondre à echantillon

3

 Char Snipeur, le 22 déc 2006 à 16:39:42

Je suis étonner que ça compile sans les "int" parceque des fois il y a une erreur et le compilo me dit: "declaration d'int sans type n'est pas du C ansi !"
Pour être le plus propre possible, compile avec l'option -Wall. Là il ne devrai pas laisser passer un non typage sans râler un peu Salutation !
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net