Les fonctions en général
161
4.4 Variables globales
Nous avons vu que la communication entre programme et fonction se limitait à l’échange de
paramètres et d’un éventuel résultat. En particulier, les variables du programme et les variables locales à une fonction sont totalement indépendantes.
Dans certains langages, il est possible de prévoir que certaines variables du programme
soient directement accessibles à la fonction. On les qualifie alors de variables globales.
Cette communication par l’intermédiaire de variables globales est très déconseillée car elle
comporte des risques évidents : une variable globale peut se voir modifier par n’importe
quelle fonction, peut-être à juste titre, peut-être par mégarde... Lorsque nous aborderons la
programmation orientée objet, nous verrons qu’elle correspond à une démarche visant à isoler au maximum les différentes données manipulées, ce qui va nettement à l’encontre de la
notion de variable globale.
Ici, nous ne vous proposerons pas de mécanisme permettant d’utiliser de telles variables.
4.5 Concordance de type
Supposons que l’on dispose de cette fonction :
réel fonction carré (réel x)
{ retourne x * x
}
et qu’on l’utilise ainsi :
entier n
réel y
.....
y := carré (n)
On voit qu’on a fourni un paramètre de type entier, là où la fonction attendait une valeur de
type réel. Le comportement du programme dans une telle situation dépendra étroitement du
langage utilisé. On peut aboutir à :
• une erreur de compilation ;
• la mise en place par le traducteur de la conversion de la valeur de n en réel ;
• une erreur de calcul due à ce que la fonction aura interprété le motif binaire reçu suivant un
autre codage ;
• ...
Ici, nous conviendrons que le type du paramètre effectif et celui du paramètre formel doivent
être exactement les mêmes.
Des remarques comparables s’appliquent au résultat.
Précédent

- 184/370

Suivant