Namespaces
Variants

Static storage duration

From cppreference.net

Un objet dont l'identifiant est déclaré sans le spécificateur de classe de stockage _Thread_local , et soit avec une liaison externe ou interne, soit avec le spécificateur de classe de stockage static , possède une durée de stockage statique. Sa durée de vie correspond à l'exécution entière du programme et sa valeur stockée est initialisée une seule fois, avant le démarrage du programme.

Notes

Puisque sa valeur stockée est initialisée une seule fois, un objet avec une durée de stockage statique peut profiler les invocations d'une fonction.

L'autre utilisation du mot-clé static est la portée de fichier .

Exemple

#include <stdio.h>
void f (void)
{
    static int count = 0;   // static variable   
    int i = 0;              // automatic variable
    printf("%d %d\n", i++, count++);
}
int main(void)
{
    for (int ndx=0; ndx<10; ++ndx)
        f();
}

Sortie :

0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9