Next: Déclarations de variables ayant
Up: Les bases
Previous: Les chaînes de caractères
Sous-sections
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.
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.
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.
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.
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.
Next: Déclarations de variables ayant
Up: Les bases
Previous: Les chaînes de caractères
Bernard Cassagne
1998-12-09