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 bug 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é.