Questions-réponses
- Une variable statique est
forcément globale: FAUX,
il existe des variables statiques qui sont locales à un bloc
(mot clé static) même si l'utilité est rare.
- Une variable locale statique
garde son espace mémoire et sa valeur après la sortie du
bloc dans lequel elle est définie: VRAI, l'espace mémoire est en zone des
données donc existe pendant toute la durée de
l'exécution du programme.
- Une variable globale est
forcément statique: VRAI,
l'espace mémoire qui est réservée est en zone des
données.
- Seules les variables statiques
sont en zone de données: VRAI
- Seules les variables automatiques
ont un espace réservée sur la pile: VRAI
- Une variable automatique est
forcément locale: VRAI,
l'espace est réservée sur la pile (parfois dans un
registre) et cet espace est récupéré par le
système à la sortie du bloc dans lequel elle est
définie
- Il n'y a aucun espace
mémoire réservé pour une variable externe (mot
clé extern): VRAI, la
variable est externe, ce qui veut dire que la variable globale est
déclarée dans un autre fichier donc que l'espace est
réservé par cette autre déclaration.
- La portée d'une variable
globale est forcément délimitée à tout le
programme: FAUX, les variables
globales déclarées en static ont une portée
limitée au fichier dans lequel elle est déclarée.
- Définir une variable
globale evite de passer cette variable en paramètre des
fonctions qui l'utilisent: VRAI,
la variable est connue dans la fonction donc on a pas besoin de la
mettre en paramètre.
- Il faut définir un maximum
de variables globales pour réduire le nombre de
paramètres des
fonctions: FAUX BIEN AU CONTRAIRE,
généraliser
les variables globales diminue la lisibilité et le
réutilisabilité
des fonctions, il faut au contraire minimiser le nombre de variables
globales.
Par ailleurs, il faut préciser dans la spécification des
fonctions
toute manipulation d'une variable globale.
suivant
plan