Durée de vie

Du point de vue de la durée de vie, il existe trois types de variables : les variables statiques, les variables automatiques et les variables dynamiques.

$\bullet$
Les variables statiques sont allouées au début de l'exécution du programme, et ne sont libérées qu'à la fin de l'exécution du programme.

$\bullet$
Les variables automatiques sont allouées à l'entrée d'une instruction composée, et libérées lors de la sortie de l'instruction composée.

$\bullet$
Les variables dynamiques sont allouées et libérées explicitement par le programmeur, à l'aide des fonctions malloc et free.

Dans les langages de programmation, il y a généralement un lien étroit entre la portée de la déclaration d'une variable et sa durée de vie. Il est classique en effet, qu'une variable globale (c'est à dire dont la déclaration se trouve à l'extérieur de toute fonction), soit une variable statique, et qu'une variable locale à une procédure ou fonction, soit une variable automatique.

Dans le langage C, le programmeur a davantage de liberté. Les variables globales sont ici aussi des variables statiques, mais les variables locales peuvent être au choix du programmeur statiques ou automatiques. Si la déclaration d'une variable locale est précédée du mot clé static, cette variable sera statique, si elle est précédée du mot-clé auto, elle sera automatique, et en l'absence de l'un et l'autre de ces mots-clés, elle sera prise par défaut de type automatique.



Sous-sections
Matthieu Moy 2017-02-08