« Conseils de codage en C/Recherche des erreurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Thierry46 (discussion | contributions)
Parenthèses dans les macros.
Thierry46 (discussion | contributions)
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==