VIII. Se procurer la norme du langage C (C99)▲
La norme du C est définie par l'ISO. On trouve l'original sur le site de l'ISO, mais elle est très chère. Elle est aussi reprise par l' ANSI à l'identique, pour la somme raisonnable de 20 USD.
Il est possible de télécharger gratuitement le dernier draft de la norme (N1256) ici : (C99). Ce document est complet et intègre C99, TC1 et TC2 (Technical Corrigendum 1 et 2). C'est probablement le dernier draft du document définitif de l'ultime norme du C qui ne devrait plus évoluer, le comité étant en sommeil.
En fait, le comité continue de travailler, et une nouvelle version du langage C (C1x) est en cours d'élaboration. En voici le dernier draft : n1336.
Il existe un document quasiment officiel qui commente la norme : Le 'Rationale'. Très utile pour trouver des explications complémentaires.
IX. C'est quoi ce 'static' ?▲
static est un qualificateur qui a plusieurs significations selon le contexte :
- devant une déclaration de fonction :
static
int
f
(
void
)
Limite la portée de la fonction à l'unité de compilation courante.
- devant une variable définie hors de tout bloc (dite 'de portée globale') :
static
int
x;
Limite la portée de la variable à l'unité de compilation courante.
- devant une variable définie dans un bloc (dite 'de portée locale') :
int
counter
(
void
)
{
static
int
x;
x++
;
return
x;
}
Place la variable dans la mémoire statique, la rendant persistante. Usage rarissime (quick'n dirty).
À éviter, surtout pour du code réutilisable (bibliothèque).