Programmation : C  


Sommaire
Linux
Programmation
Divers logiciels
News à venir
CV

Mail me





 
 
 
Introduction
Types de base
Déclaration des variables
Les énumérations
Constantes et macro-constantes
Définition de types
Les expressions
Langage C    
LES ENUMERATIONS    
(constantes symboliques)
 
   
Les énumérations

enum type { idf [ = constante] [, ...] } ;

permet de définir une liste d'identificateurs dont chaque élément est associé à la valeur d'une constante obligatoirement entière : int.

Définition des énumérations :
enum bool {faux = 0, vrai = 1}
enum direction { N, NW, W, SW, S, SE, E, NE } ;
enum symbole { ajouter = 'a', modifier = 'm', ...

Déclaration des variables :
enum bool b ;
enum symbole s ;

Utilisation :
if (b == faux) ...
switch (s)
{
modifier : ...


Les énumérations :
enum bool {faux = 0, vrai = 1}
définit le type enum bool constitué des deux identificateurs faux et vrai ayant respectivement les valeurs entières 0 et 1.

enum direction { N, NW, W, SW, S, SE, E, NE } ;
montre qu'il n'est pas nécessaire de donner une valeur explicite à chaque identificateur :
les constantes entières prennent les valeurs consécutives à partir de 0; par exemple, N vaut 0, NW vaut 1,...

enum symbole { ajouter = 'a', modifier = 'm', supprimer = 's' } ;
enum symbole s = getchar () ;
une constante caractère est en fait de type int et peut être utilisée dans une énumération, le caractère 'a' a pour valeur entière 97.
La fonction getchar ( ) retourne également une valeur de type int.

Haut de la page


Les "constantes" (macro-constantes)

La directive #define
#define nom texte_de_remplacement

#define est une directive de compilation :
#define TAILLE 10
#define PI 3.1415927
#define EOF -1
#define LF '\n'
#define CHEMIN "/users/toto/projet/sys"

La directive #define est interprétée par le préprocesseur C, c'est un mécanisme de substitution : toutes les occurences de nom sont remplacées par le texte avant la compilation.

Par convention : le nom d'une macro-constante est en lettres majuscules.


La directive #define est également présentée plus loin.