Programmer en langage C
106
© Éditions Eyrolles
7.1 Exemple d’utilisation de variables globales
Voyez cet exemple de programme.
La variable i a été déclarée en dehors de la fonction main. Elle est alors connue de toutes les
fonctions qui seront compilées par la suite au sein du même programme source. Ainsi, ici, le programme principal affecte à i des valeurs qui se trouvent utilisées par la fonction optimist.
Notez qu’ici la fonction optmist se contente d’utiliser la valeur de i mais rien ne l’empêche
de la modifier. C’est précisément ce genre de remarque qui doit vous inciter à n’utiliser les
variables globales que dans des cas limités. En effet, toute variable globale peut être modifiée
insidieusement par n’importe quelle fonction. Lorsque vous aurez à écrire des fonctions susceptibles de modifier la valeur de certaines variables, il sera beaucoup plus judicieux de prévoir
d’en transmettre l’adresse en argument (comme vous apprendrez à le faire dans le prochain
chapitre). En effet, dans ce cas, l’appel de la fonction montrera explicitement quelle est la
variable qui risque d’être modifiée et, de plus, ce sera la seule qui pourra l’être.
7.2 La portée des variables globales
Les variables globales ne sont connues du compilateur que dans la partie du programme source
suivant leur déclaration. On dit que leur portée (ou encore leur espace de validité) est limitée à
la partie du programme source qui suit leur déclaration (n’oubliez pas que, pour l’instant, nous
nous limitons au cas où l’ensemble du programme est compilé en une seule fois).
Exemple d’utilisation d’une variable globale
#include
int i ;
main()
{ void optimist (void) ;
for (i=1 ; i<=5 ; i++)
optimist() ;
}
void optimist(void)
{
printf ("il fait beau %d fois\n", i) ;
}
il fait beau 1 fois
il fait beau 2 fois
il fait beau 3 fois
il fait beau 4 fois
il fait beau 5 fois
Delannoy Livre.book Page 106 Mercredi, 6. mai 2009 4:26 16
106
© Éditions Eyrolles
7.1 Exemple d’utilisation de variables globales
Voyez cet exemple de programme.
La variable i a été déclarée en dehors de la fonction main. Elle est alors connue de toutes les
fonctions qui seront compilées par la suite au sein du même programme source. Ainsi, ici, le programme principal affecte à i des valeurs qui se trouvent utilisées par la fonction optimist.
Notez qu’ici la fonction optmist se contente d’utiliser la valeur de i mais rien ne l’empêche
de la modifier. C’est précisément ce genre de remarque qui doit vous inciter à n’utiliser les
variables globales que dans des cas limités. En effet, toute variable globale peut être modifiée
insidieusement par n’importe quelle fonction. Lorsque vous aurez à écrire des fonctions susceptibles de modifier la valeur de certaines variables, il sera beaucoup plus judicieux de prévoir
d’en transmettre l’adresse en argument (comme vous apprendrez à le faire dans le prochain
chapitre). En effet, dans ce cas, l’appel de la fonction montrera explicitement quelle est la
variable qui risque d’être modifiée et, de plus, ce sera la seule qui pourra l’être.
7.2 La portée des variables globales
Les variables globales ne sont connues du compilateur que dans la partie du programme source
suivant leur déclaration. On dit que leur portée (ou encore leur espace de validité) est limitée à
la partie du programme source qui suit leur déclaration (n’oubliez pas que, pour l’instant, nous
nous limitons au cas où l’ensemble du programme est compilé en une seule fois).
Exemple d’utilisation d’une variable globale
#include
int i ;
main()
{ void optimist (void) ;
for (i=1 ; i<=5 ; i++)
optimist() ;
}
void optimist(void)
{
printf ("il fait beau %d fois\n", i) ;
}
il fait beau 1 fois
il fait beau 2 fois
il fait beau 3 fois
il fait beau 4 fois
il fait beau 5 fois
Delannoy Livre.book Page 106 Mercredi, 6. mai 2009 4:26 16
