IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Notes sur le langage C

Notes sur le langage C


précédentsommairesuivant

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 :
 
Sélectionnez
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') :
 
Sélectionnez
static int x;

Limite la portée de la variable à l'unité de compilation courante.

  • devant une variable définie dans une bloc (dite 'de portée locale') :
 
Sélectionnez
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).

A éviter, surtout pour du code réutilisable (bibliothèque).


précédentsommairesuivant

Copyright © 2009 Emmanuel Delahaye. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.