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.
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 :
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.