© Éditions Eyrolles
113
chapitre n° 6
La programmation modulaire et les fonctions
Sans la déclaration static, a serait une variable globale ordinaire. Par contre, cette
déclaration demande qu’aucune trace de a ne subsiste dans le module objet résultant de ce
fichier source. Il sera donc impossible d’y faire référence depuis une autre source par extern.
Mieux, si une autre variable globale apparaît dans un autre fichier source, elle sera acceptée à
l’édition de liens puisqu’elle ne pourra pas interférer avec celle du premier source.
Cette possibilité de cacher des variables globales peut s’avérer précieuse lorsque vous êtes
amené à développer un ensemble de fonctions d’intérêt général qui doivent partager des variables globales. En effet, elle permet à l’utilisateur éventuel de ces fonctions de ne pas avoir à se
soucier des noms de ces variables globales puisqu’il ne risque pas alors d’y accéder par
mégarde. Cela généralise en quelque sorte à tout un fichier source la notion de variable locale
telle qu’elle était définie pour les fonctions. Ce sont d’ailleurs de telles possibilités qui permettent
de développer des logiciels en C, en utilisant une philosophie orientée objet.
10 Les différents types de variables, leur portée et leur classe
d’allocation
Nous avons déjà vu différentes choses concernant les classes d’allocation des variables et leur
portée. Ici, nous nous proposons de faire le point après avoir introduit quelques informations
supplémentaires.
10.1 La portée des variables
On peut classer les variables en quatre catégories en fonction de leur portée (ou espace de
validité). Nous avons déjà rencontré les trois premières que sont : les variables globales, les
variables globales cachées et les variables locales à une fonction. En outre, il est possible de
définir des variables locales à un bloc. Elles se déclarent en début d’un bloc de la même façon
qu’en début d’une fonction. Dans ce cas, la portée de telles variables est limitée au bloc en
question. Leur usage est, en pratique, peu répandu.
10.2 Les classes d’allocation des variables
Il est également possible de classer les variables en trois catégories en fonction de leur classe
d’allocation. Là encore, nous avons déjà rencontré les deux premières, à savoir :
●
la classe statique : elle renferme non seulement les variables globales (quelles qu’elles
soient), mais aussi les variables locales faisant l’objet d’une déclaration static. Les
emplacements mémoire correspondants sont alloués une fois pour toutes au moment de
l’édition de liens,
Delannoy Livre.book Page 113 Mercredi, 6. mai 2009 4:26 16
113
chapitre n° 6
La programmation modulaire et les fonctions
Sans la déclaration static, a serait une variable globale ordinaire. Par contre, cette
déclaration demande qu’aucune trace de a ne subsiste dans le module objet résultant de ce
fichier source. Il sera donc impossible d’y faire référence depuis une autre source par extern.
Mieux, si une autre variable globale apparaît dans un autre fichier source, elle sera acceptée à
l’édition de liens puisqu’elle ne pourra pas interférer avec celle du premier source.
Cette possibilité de cacher des variables globales peut s’avérer précieuse lorsque vous êtes
amené à développer un ensemble de fonctions d’intérêt général qui doivent partager des variables globales. En effet, elle permet à l’utilisateur éventuel de ces fonctions de ne pas avoir à se
soucier des noms de ces variables globales puisqu’il ne risque pas alors d’y accéder par
mégarde. Cela généralise en quelque sorte à tout un fichier source la notion de variable locale
telle qu’elle était définie pour les fonctions. Ce sont d’ailleurs de telles possibilités qui permettent
de développer des logiciels en C, en utilisant une philosophie orientée objet.
10 Les différents types de variables, leur portée et leur classe
d’allocation
Nous avons déjà vu différentes choses concernant les classes d’allocation des variables et leur
portée. Ici, nous nous proposons de faire le point après avoir introduit quelques informations
supplémentaires.
10.1 La portée des variables
On peut classer les variables en quatre catégories en fonction de leur portée (ou espace de
validité). Nous avons déjà rencontré les trois premières que sont : les variables globales, les
variables globales cachées et les variables locales à une fonction. En outre, il est possible de
définir des variables locales à un bloc. Elles se déclarent en début d’un bloc de la même façon
qu’en début d’une fonction. Dans ce cas, la portée de telles variables est limitée au bloc en
question. Leur usage est, en pratique, peu répandu.
10.2 Les classes d’allocation des variables
Il est également possible de classer les variables en trois catégories en fonction de leur classe
d’allocation. Là encore, nous avons déjà rencontré les deux premières, à savoir :
●
la classe statique : elle renferme non seulement les variables globales (quelles qu’elles
soient), mais aussi les variables locales faisant l’objet d’une déclaration static. Les
emplacements mémoire correspondants sont alloués une fois pour toutes au moment de
l’édition de liens,
Delannoy Livre.book Page 113 Mercredi, 6. mai 2009 4:26 16
