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.