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

Contenu supprimé Contenu ajouté
Thierry46 (discussion | contributions)
Thierry46 (discussion | contributions)
Parenthèses dans les macros.
Ligne 35 :
L’instruction '''for''' doit permettre le contrôle total d’une itération. Si une instruction est vide, cela veut dire que la boucle aurait pu être écrite sous une autre forme ('''do''' ou '''while''').
 
==Mettre des parenthèses dans les expressions==
Les expressions arithmétiques et logiques doivent être placées entre parenthèses.
 
Ligne 46 :
*Mauvais : if ( n & 1 == 0 ) ...
*Bon : if ( ( n & 1 ) == 0 ) ...
 
==Mettre des parenthèses autour des paramètres des macros==
Les macros doivent être écrites avec des parenthèses autour de leurs paramètres.
 
===Justification===
Lors du remplacement des paramètres formels par les paramètres effectifs, il peut y avoir des problèmes de priorité des opérateurs dans les expressions résultats.
 
===Exemple===
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
 
==Éviter les problèmes d'inclusion multiple==