|
|
Macro-insructions
macros |
Voici
un élément de programmation peu recommendable, de moins en moins
utilisé en C++,
mais qu'il faut néanmoins connaître, vu qu'on le rencontre encore
souvent.
|
D'abord,
qu'est-ce que le PRÉPROCESSEUR ?
|
|
Ce programme traite
et modifie le texte à compiler suivant de directives indiquées
par le programmeur, généralement en tête de fichier. Ces directives sont
écrites en début de ligne et précédées
d'un dièse #. Exemples : #include <stdio.h>
Nous avons déjà
rencontré
la directive "#include <stdio.h>"
qui avait pour effet d'inclure le fichier "stdio.h"
dans le texte source à compiler. Nous nous intéressons Ici à la directive : #define
|
|
Macroinstructions
ou macros
|
|||||
|
Un ou une macro est, non pas une instruction, mais une directive destinée au préprocesseur du type :: #define identificateur chaine_de_caracteres Exemples : #define
pi 3.14159265359 La première
forme : La seconde forme :
Affichage :
Seulement
voilà : les macros peuvent vous jouer des tours difficiles à
prévoir !
Affichage
C'est evidemment faux ! car le carré de 3+2 = 5 est manifestement 25 et pas 11 Que s'est-il pasé ? Mettons-nous à la place du préprocesseur :
a+2*a+2 == 3+2*3+2 == 3+6+2 == bel et bien 11 Pour tout arranger il eut suffi d'écrire le macro : #define carre(a) (a)*(a) Au remplacement : -a = (a+2)*(a+2); Voilà
pourquoi vous ne devez écrire des macro Voir notre rubrique : Variables & Constantes
|
|
|