« Programmation C/Classe de stockage » : différence entre les versions

Contenu supprimé Contenu ajouté
m Formatage, ajout de code
Ligne 11 :
* <code>static</code> : rend une définition de variable persistante.
 
Les classes <ttcode>static</ttcode> et <ttcode>extern</ttcode> sont, de loin, les plus utilisées. <ttcode>register</ttcode> est d'une utilité limitée, et <ttcode>auto</ttcode> est maintenant obsolète.
 
Une variable, ou un paramètre de fonction, ne peut avoir qu'au plus une classe de stockage.
Ligne 51 :
Une variable de classe statique est initialisée au moment de la compilation à zéro par défaut (contrairement aux variables dynamiques qui ont une valeur initiale indéterminée). Elle peut être initialisée explicitement à n'importe quelle valeur ''constante''.
 
{{à faire|utilisation de <ttcode>static</ttcode> en C99 pour les tableaux en paramètres de fonctions}}
 
=== Classe 'extern' ===
Ligne 59 :
Toutes les variables globales et fonctions qui ne sont pas déclarées (ou définies) <code>static</code> sont externes par défaut.
 
<ttcode>static</ttcode> et <ttcode>extern</ttcode> sont employés pour distinguer, dans un fichier C, les objets et fonctions « privés », qui ne doivent être utilisés que depuis l'intérieur du fichier, et ceux qui sont « publics », et pourront être accessibles depuis d'autres fichiers.
 
=== Classe 'register' ===
Ligne 89 :
 
=== Classe 'auto' ===
Cette classe est un héritage du langage B. En C, ce mot-clé sert pour les variables locales à une fonction non-statiques, dites aussi ''automatiques''. Mais une variable déclarée localement à une fonction sans qualificateur <ttcode>static</ttcode> étant implicitement automatique, ce mot-clé est inutile en C.
 
== Qualificateurs ==