19.3.2 Durée de vie

Icône de l'outil pédagogique Durée de vie

 

Par défaut, une variable de bloc est allouée en cours d'exécution à l'entrée dans le bloc où elle est définie et elle est détruite à la sortie du bloc.

La durée de vie par défaut d'une variable de bloc est donc la durée pendant laquelle le bloc est actif.

On dit que la classe par défaut d'une variable de bloc est la classe automatique.

L'emplacement mémoire d'une variable de bloc de classe automatique est alloué dans la pile au début de l'exécution du bloc. Cet emplacement mémoire disparaît à la fin de l'exécution du bloc.

Cependant, une variable de bloc peut être permanente, c'est‐à‐dire que sa durée de vie devient celle du programme. Elle est alors dite de classe permanente ou statique.

Une variable de bloc de classe statique est définie à l'aide du mot‐clé static. Par exemple :

 

 

Une variable de bloc de classe statique est allouée par le compilateur en zone de données statiques, comme une variable de fichier.
Sa durée de vie permanente ne l'empêche pas de rester locale du point de vue de la visibilité.

On remarquera que ce que nous avons appelé jusqu'à présent une variable locale est en réalité une variable de bloc de classe automatique.