next up previous contents
Next: Visibilité et types Up: Messages du compilateur Previous: Messages du compilateur

Les erreurs détectées à la compilation


syntax error

Les erreurs les plus facilement détectées par un compilateur, qui sont aussi les plus fréquemment commises par les débutants, sont les erreurs de syntaxe, ou de grammaire si vous préférez. Le langage C++ obéit en effet à une grammaire très stricte, et le compilateur est programmé pour refuser tout texte qui viole cette grammaire.

Il suffit que votre programme comporte une seule faute de syntaxe pour que le compilateur refuse de générer du code exécutable. Par contre, il traitera si possible l'ensemble de votre texte pour détecter le maximum d'erreurs, qu'il vous signale par des messages.

Ce que vous dira le compilateur dans ses messages n'est pas toujours l'explication de la cause de l'erreur, mais plutôt sa manifestation au plus bas niveau. Prenons par exemple le fragment de code suivant :

typedef int Entier

void main()
{

Notre diagnostic serait de dire qu'un point virgule (semicolon) a été omis à la fin de la première ligne, mais le compilateur, dans sa lecture séquentielle des symboles, verra l'erreur à un autre niveau. Il faudra qu'il rencontre le symbole "{" pour s'apercevoir de l'erreur :

CC: "ex1.cpp", line 4: error: syntax error (1502)

Donc, le numéro de ligne qui accompagne le message ne donne pas forcément l'emplacement où devra porter la correction, mais plutôt l'endroit où l'erreur a pu être détectée par le compilateur. Si la ligne désignée est correcte, il faudra alors regarder la ligne précédente (ne manque-t-il pas un point-virgule ?), puis éventuellement ``remonter'' dans le programme jusqu'au début de la structure dont la construction a été jugée erronée. Certaines structures occupant couramment de nombreuses lignes (blocs {...}, structures if...else, etc.), il peut être nécessaire de remonter assez loin.



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