classe d'allocation

Il existe 4 classe d'allocation pour les variables :

Classe

Mot clé

Usage

externe extern Il s'agit d'une variable définie au niveau fichier et accessible à partir des autres fichiers
automatique auto Il s'agit d'une variable définie dans une fonction, dont la durée de vie est celle d'un appel de la fonction et qui est allouée dans la pile du programme.

statique

- rémanente

- confidentielle

static

Deux cas :
- Pour une variable définie dans une fonction, c'est une variable rémanente dont la durée de vie est celle de l'application (pas allouée dans la pile)
- Pour une variable définie au niveau fichier, la visibilité de cette variable confidentielle est le fichier (par opposition à une variable externe)

registre register C'est une vraible définie dans une fonction ou un bloc allouée si possible dans un registre machine et sinon dans la pile.

L'indication de classe d'allocation se place avant le spécificateur de type : extern

const char car = 'd' ;

static int i ;

register int j ;

auto char c ;

Par défaut,

  • une variable déclarée dans une fonction est automatique (dans la pile, un exemplaire par appel de la fonction) ;
  • une varaiable déclarée au niveau fichier est externe (définition externe d'une varaible utilisable dans d'autres fichiers).

» Glossaire du langage C