Les constantes nommées next up previous contents index
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.14159
et 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'expression PI / 2 par 3.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'expression PI / 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 identificateurs LUNDI, ... DIMANCHE comme étant des constantes de type int, 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