« Programmation C++/Le préprocesseur » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 162 :
}
 
Ici, le résultat obtenu n'est pas forcement celui désiré. <code>DIVISER(4 + 4, 2)</code> sera traduit après la précompilation par <code>4 + 4 / 2</code>. Ceci donne pour valeur 4 + 2, soit 6. Ajouter un maximum de parenthèses permet de s'assurer de la validité de la macro sous plusieurs utilisations différentes. Ainsi, dans l'exemple précédent, une utilisation de parenthèses dans la macro (<code>#define DIVISER(x, y) ((x) / (y))</code>), aurait traduit <code>DIVISER(4 + 4, 2)</code> en <code>((4 + 4) / (2)</code>. Ceci aurait donné dommecomme valeur 8 / 2 = 4, la valeur attendue.