next up previous contents
Next: Divers Up: Les erreurs détectées à Previous: Visibilité et types

Erreurs de commentaires

Les commentaires peuvent être, s'ils sont mal utilisés, la source d'erreurs parfois troublantes. Considérons le programme suivant :

#include <iostream.h>
void main()
{
  cout << "c'est  ";        /* c'est la fin * /
  cout << "fini" << endl;   /* ouf */
}

Outre son utilité pratique discutable, ce programme comporte un buggif vicieux. Il est vicieux car il ne se manifeste pas à la compilation, qui se termine sans aucune erreur ni avertissement. Mais voilà, lorsqu'on l'exécute, ce programme affiche simplement

c'est

Cela est dû simplement au fait que le premier commentaire n'est pas correctement terminé (blanc entre l'étoile et le caractère /) et se termine donc en fait à la fin de la ligne suivante. La seconde instruction n'est donc pas ``vue'' par le compilateur.

Mon exemple comportait volontairement des instructions d'affichage pour bien rendre le problème apparent, imaginez maintenant qu'une instruction ainsi masquée effectue un calcul intermédiaire dans un programme de quelques milliers de lignes ! Un tel bug peut facilement rester caché pendant des mois avant d'être détecté, localisé et enfin corrigé.



Michel COUPRIE
Thu Sep 12 13:39:33 METDST 1996