![]()
Les constantes nommées ![]()
![]()
![]()
![]()
![]()
Suivant: Déclarations de variables ayant Début: Les bases Précédent: Les chaînes de caractères
Paragraphes
Les constantes nommées
Il y a deux façons de donner un nom à une constante : soit en utilisant les possibilités du préprocesseur, soit en utilisant des énumérations.Les #define
Lorsque le préprocesseur lit une ligne du type :
#define
identificateur reste-de-la-ligne
il remplace dans toute la suite du source, toute nouvelle occurrence de identificateur par reste-de-la-ligne. Par exemple on peut écrire :#define PI 3.14159et dans la suite du programme on pourra utiliser le nom PI pour désigner la constante 3.14159.Attention
Une telle définition de constante n'est pas une déclaration mais une commande du préprocesseur. Il n'y a donc pas de ; à la fin. Rappelons que le préprocesseur ne compile pas, il fait des transformations d'ordre purement textuel. Si on écrit :#define PI 3.14159;le préprocesseur remplacera toute utilisation de PI par 3.14159; et par exemple, remplacera l'expressionPI / 2
par3.14159; / 2
ce qui est une expression incorrecte. Dans une telle situation, le message d'erreur ne sera pas émis sur la ligne fautive (le#define
), mais sur une ligne correcte (celle qui contient l'expressionPI / 2
), ce qui gênera la détection de l'erreur.Les énumérations
On peut définir des constantes de la manière suivante :
enum {
liste-d'identificateurs}
Par exemple :enum {LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE};définit les identificateursLUNDI
, ...DIMANCHE
comme étant des constantes de typeint
, et leur donne les valeurs 0, 1, ... 6. Si on désire donner des valeurs particulières aux constantes, cela est possible :enum {FRANCE = 10, ESPAGNE = 20, ITALIE = 30};Il n'est pas nécessaire de donner une valeur à toutes les constantes :enum {FRANCE = 10, LUXEMBOURG, BELGIQUE, ESPAGNE = 20, ITALIE = 30};donnera la valeur 11 à LUXEMBOURG et 12 à BELGIQUE.Remarque
Il est d'usage (au moins dans le monde UNIX) de donner un nom entièrement en majuscules aux constantes nommées d'un programme. Mon opinion est que ceci est une bonne convention, qui accroît la lisibilité des programmes.
30/9/1997