🅱 Les constantes en C
Si vous voulez définir une variable dont la valeur ne peut pas être changée, vous pouvez utiliser le mot-clé const. Cela va créer une constante. Exemple,
Exemple 3 :
const double PI=3.14;
Ici, PI est une constante; sa valeur ne peut être changée.
Exemple 4 :
const double PI=3.14;
PI=4.6; // Erreur
Vous pouvez également définir une constante en utilisant #define. Nous allons y revenir😉
Si vous voulez définir une variable dont la valeur ne peut pas être changée, vous pouvez utiliser le mot-clé const. Cela va créer une constante. Exemple,
Exemple 3 :
const double PI=3.14;
Ici, PI est une constante; sa valeur ne peut être changée.
Exemple 4 :
const double PI=3.14;
PI=4.6; // Erreur
Vous pouvez également définir une constante en utilisant #define. Nous allons y revenir😉
II-/ Les define
Nous allons découvrir maintenant une nouvelle directive de préprocesseur : le #define.
Cette directive permet de définir une constante de préprocesseur. Cela permet d'associer une valeur à un mot. Voici un exemple :
#define NOMBRE_VIES_INITIALES 3
Vous devez écrire dans l'ordre :
le #define;
le mot auquel la valeur va être associée ;
la valeur du mot.
Attention : malgré les apparences (notamment le nom que l'on a l'habitude de mettre en majuscules), cela est très différent des constantes que nous avons étudiées jusqu'ici, telles que :
const int NOMBRE_VIES_INITIALES = 3;
Les constantes occupaient de la place en mémoire. Même si la valeur ne changeait pas, votre nombre 3 était stocké quelque part dans la mémoire. Ce n'est pas le cas des constantes de préprocesseur ! 👨🏽💻
Les #define nous permettent de faire quelque chose de génial : d'effectuer directement des calculs
Exemple :
#define LARGEUR_FENETRE 800
#define HAUTEUR_FENETRE 600
#define NOMBRE_PIXELS (LARGEUR_FENETRE * HAUTEUR_FENETRE)
Nous allons découvrir maintenant une nouvelle directive de préprocesseur : le #define.
Cette directive permet de définir une constante de préprocesseur. Cela permet d'associer une valeur à un mot. Voici un exemple :
#define NOMBRE_VIES_INITIALES 3
Vous devez écrire dans l'ordre :
le #define;
le mot auquel la valeur va être associée ;
la valeur du mot.
Attention : malgré les apparences (notamment le nom que l'on a l'habitude de mettre en majuscules), cela est très différent des constantes que nous avons étudiées jusqu'ici, telles que :
const int NOMBRE_VIES_INITIALES = 3;
Les constantes occupaient de la place en mémoire. Même si la valeur ne changeait pas, votre nombre 3 était stocké quelque part dans la mémoire. Ce n'est pas le cas des constantes de préprocesseur ! 👨🏽💻
Les #define nous permettent de faire quelque chose de génial : d'effectuer directement des calculs
Exemple :
#define LARGEUR_FENETRE 800
#define HAUTEUR_FENETRE 600
#define NOMBRE_PIXELS (LARGEUR_FENETRE * HAUTEUR_FENETRE)
III - / LES MACRO
Le plus génial avec les directives aux processeur est que vous pouvez directement créer et gérer des fonctions de processeur 😊😍.
Voici un exemple de macro très simple :
#define COUCOU() printf("Coucou");
Testons la macro dans un code source :
#define COUCOU() printf("Coucou");
int main()
{
COUCOU()
return 0;
}
Resultat:
Coucou
😭😭 Trop génial.
Heureusement il est possible de mettre plusieurs lignes de code à la fois. Il suffit de placer un "\" avant chaque nouvelle ligne, comme ceci :
#define RACONTER_SA_VIE() printf("Coucou, je m'appelle Brice\n"); \
printf("J'habite a Nice\n"); \
printf("J'aime la glisse\n");
int main()
{
RACONTER_SA_VIE()
return 0;
}
Resultat:
Coucou, je m'appelle Brice
J'habite a Nice
J'aime la glisse
Trop génial 😭😭
Il est même encore possible de passer un paramètre à votre fonction
Exemple:
#define MAJEUR(age) if (age >= 18) \
printf("Vous etes majeur\n");
int main()
{
MAJEUR(22)
return 0;
}
Resultat:
Vous etes majeur
😊👍😍
Le plus génial avec les directives aux processeur est que vous pouvez directement créer et gérer des fonctions de processeur 😊😍.
Voici un exemple de macro très simple :
#define COUCOU() printf("Coucou");
Testons la macro dans un code source :
#define COUCOU() printf("Coucou");
int main()
{
COUCOU()
return 0;
}
Resultat:
Coucou
😭😭 Trop génial.
Heureusement il est possible de mettre plusieurs lignes de code à la fois. Il suffit de placer un "\" avant chaque nouvelle ligne, comme ceci :
#define RACONTER_SA_VIE() printf("Coucou, je m'appelle Brice\n"); \
printf("J'habite a Nice\n"); \
printf("J'aime la glisse\n");
int main()
{
RACONTER_SA_VIE()
return 0;
}
Resultat:
Coucou, je m'appelle Brice
J'habite a Nice
J'aime la glisse
Trop génial 😭😭
Il est même encore possible de passer un paramètre à votre fonction
Exemple:
#define MAJEUR(age) if (age >= 18) \
printf("Vous etes majeur\n");
int main()
{
MAJEUR(22)
return 0;
}
Resultat:
Vous etes majeur
😊👍😍