Pages : 1
#1 Le 27/05/2007, à 05:19
- damiens
variable globale et fonctions
Voici un code tout simple :
void affiche ();
int main(void){
int i = 1;
affiche();
}
void affiche (){
printf("%d",i);
system("read a");
}
Le problème c'est qu'il me dit que i n'est pas déclaré dans la fonction or il me semblait que, du fait que c'est une variable globale, je n'avais pas besoins de la passer comme argument ... Pourriez-vous m'expliquer où est mon erreur svp ?
#2 Le 27/05/2007, à 05:27
- Damiens
Re : variable globale et fonctions
J'ai compile avec gcc.
#3 Le 27/05/2007, à 05:33
- abetsic
Re : variable globale et fonctions
Dans ton code, i n'est pas une variable globale, mais une variable locale à la fonction main().
Pour qu'une variable soit globale, il faut qu'elle soit déclarée en dehors de toute fonction, sous les prototypes de fonction ça marchera.
Mais l'utilisation de variables globales n'est pas vraiment recommandé.
Hors ligne
#4 Le 27/05/2007, à 12:50
- Damiens
Re : variable globale et fonctions
Merci.
#5 Le 27/05/2007, à 14:12
- Link31
Re : variable globale et fonctions
Pas besoin de variable globale. D'ailleurs elles sont à éviter.
void affiche (int i);
int main(void){
int i = 1;
affiche(i);
}
void affiche (int i){
printf("%d",i);
system("read a");
}
Profites-en pour corriger quelques détails :
#include <stdlib.h>
#include <stdio.h>
void affiche (int i);
int main (int argc, char** argv) {
int i = 1;
affiche(i);
return 0;
}
void affiche (int i) {
printf("%d\n", i);
system("read a");
}
Dernière modification par Link31 (Le 27/05/2007, à 14:17)
Hors ligne
#6 Le 27/05/2007, à 17:46
- $Gaël$
Re : variable globale et fonctions
Ce serait encore mieux avec un fichier header !!
Ubuntu is an ancient african word meaning : "I can't configure Debian".
Hors ligne
Pages : 1