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

Contenu supprimé Contenu ajouté
Ligne 12 :
 
===Classe 'const'===
La classe <code>const</code> ne déclare pas une vraie constante, mais indique plutôt au compilateur que la valeur de la variable ne devraitdoit jamaispas changer. Il est donc impératif d'assigner une valeur à la déclaration de la variable, sans quoi toute tentative de modification ultérieure pourraentrainera générerune unerreur de la avertissementpart du compilateur :
 
<pre>
const int i = 0;
 
i = 1; /* avertissement erreur*/
</pre>
 
Ligne 25 :
void fonction( const char * pointeur )
{
pointeur[0] = 0; /* avertissement erreur*/
pointeur = "Nouvelle chaine de caractèrecaractères";
}
</pre>
Ligne 34 :
char * const pointeur = "Salut tout le monde !";
 
pointeur = "Hello world !"; /* avertissement erreur*/
</pre>
 
Ligne 41 :
const char * const pointeur = "Salut tout le monde !";
 
pointeur = "Hello world !"; /* avertissement erreur*/
pointeur[0] = 0; /* avertissement erreur*/
</pre>
 
Cette dernière forme est néanmoins rarement usitée. En outre ce dernier exemple présente un autre problème qui est la modification d'une chaine de caractères « en dur », qui sont la plupart du temps placées dans la section lecture seule du programme et donc inaltérables.
Cette dernière forme est néanmoins rarement usitée.
 
===Classe 'volatile'===