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

Contenu supprimé Contenu ajouté
Alveric (discussion | contributions)
Séparation en "qualificateurs" et "classes de stockage"
Alveric (discussion | contributions)
m Orthographe
Ligne 54 :
Une variable, ou un paramètre de fonction, peut avoir aucun, un, deux, ou les trois qualificateurs (certaines combinaisons n'auraient que peu de sens, mais sont autorisées).
 
===QualifitateurQualificateur 'const'===
La classe <code>const</code> ne déclare pas une vraie constante, mais indique au compilateur que la valeur de la variable ne doit pas changer. Il est donc impératif d'assigner une valeur à la déclaration de la variable, sans quoi toute tentative de modification ultérieure entrainera une erreur de la part du compilateur :
 
Ligne 90 :
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.
 
===QualifitateurQualificateur 'volatile'===
Ce mot-clé sert à spécifier au compilateur que la variable peut être modifiée à son insu. Cela annule toute optimisation que le compilateur pourrait faire, et l'oblige à procéder à chaque lecture ou écriture dans une telle variable tel que le programmeur l'a écrit dans le code. Ceci sert par exemple pour les coordonnées d'un pointeur de souris qui seraient modifiées par un autre programme, ou pour de la programmation avec de multiples fils d'exécution qui doivent communiquer entre eux, ou pour désigner des registres matériels qui peuvent être accédés depuis un programme C (une horloge, par exemple), mais dont la valeur peut changer indépendemment du programme.