next up previous
Next: Arguments de la fonction Up: Plus de détails sur Previous: Pointeur vers une fonction

Champ statique

Les variables déclarées dans une fonction sont locales. A chaque appel de la fonction, elles sont déclarées, utilisées, puis détruites. En conséquence, il n'est pas possible de consulter, lors d'un deuxième appel à une fonction, la valeur qu'avait une des variables locales à la fin du premier appel.

Il est possible cependant de préciser qu'une variable déclarée dans une fonction ne doit pas être détruite et redéclarée à chaque appel, mais qu'il doit toujours s'agir de la même variable. Pour ce faire il suffit de préciser le mot-clé static devant la variable lors de sa déclaration et initialisation. L'initialisation n'aura lieu que lors du premier appel à la fonction; au deuxième appel, l'instruction de déclaration/initialisation ne sera pas exécutée.

Ainsi pour compter le nombre de fois qu'une fonction a été appelée:

void f(){
  int a = 1;   // variable locale déclarée et effacée à chaque appel
  static int nb = 1;   // variable gardée en mémoire
  nb ++;
}



Guillaume Charpiat 2006-12-07