Différences entre les versions de « Programmation C++/Le préprocesseur »

m
m (<source> -> <syntaxhighlight> (phab:T237267))
 
 
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é comme valeur 8 / 2 = 4, la valeur attendue.
 
{{AutoCat}}