« Conseils de codage en C/Recherche des erreurs » : différence entre les versions
Contenu supprimé Contenu ajouté
Parenthèses dans les macros. |
opérateurs unaires et macros |
||
Ligne 56 :
Mauvais : <code>#define double(a) 2 * a</code> : l’appel double(2+1) sera étendu en 2 * 2 +1 : vaudra 5 au lieu de 6.
Meilleur : <code>#define double(a) 2 * (a)</code> : l’appel double(2+1) sera étendu en 2 * (2 +1) : vaudra 6
==Pas d'opérateurs unaire à l'appel des macros==
Ne pas placer d’opérateurs unaire (++, --) dans les paramètres d’appel des macros.
===Justification===
Le résultat est bien souvent imprévisible par suite des effets de bord, surtout en cas de répétition du paramètre dans la définition de la macro.
==Éviter les problèmes d'inclusion multiple==
|