Variables Statiques

La classe de stockage static définit une variable statique. Le modificateur static est indiqué avant le type de données.

Exemple :

int somefunc()
  {
   static int flag=10;
   ...
   return(flag);
  }

Une variable statique peut être initialisée par une constante ou par une expression constante correspondant à son type, contrairement à une simple variable locale, qui peut être initialisée par n'importe quelle expression.

Les variables statiques existent à partir de l'exécution du programme et ne sont initialisées qu'une seule fois avant l'appel de la fonction spécialiséeOnInit(). Si les valeurs initiales ne sont pas spécifiées, les variables statiques sont initialisées à zéro.

Les variables locales déclarées avec le mot-clé static conservent leurs valeurs tout au long du cycle de vie de la fonction. A chaque nouvel appel de la fonction, ces variables locales contiennent les valeurs qu'elles avaient à l'appel précédent.

Toute variable dans un bloc, excepté les paramètres formels d'une fonction, peut être définie comme statique. Si une variable déclarée au niveau local n'ests pas statique, la mémoire est allouée automatiquement sur la pile du programme.

Exemple :

int Counter()
  {
   static int count;
   count++;
   if(count%100==0) Print("La fonction Counter a été appelée ",count," fois");
   return count;
  }
void OnStart()
  {
//---
   int c=345;
   for(int i=0;i<1000;i++)
     {
      int c=Counter();
     }
   Print("c =",c);
  }

Voir aussi

Types de Données, Encapsulation et Extension des Types, Initialisation des Variables, Portée de Visibilité et Cycle de Vie des Variables, Créer et Supprimer des Objets, Membres Statiques de Classe