Le texte que le programmeur tape est appelé texte source du programme ; le code compilé obtenu est lexécutable. Pour que la compilation ne soit pas trop lente, il faut aussi quelle ne soit pas trop complexe. Par conséquent, le programmeur est tenu de respecter un certain nombre de conventions qui ont pour but de faciliter cette compilation, et aussi déviter des erreurs.
Lorsque ces conventions ne sont pas respectées, le compilateur suppose que le programmeur sest trompé. Il affiche alors un message derreur, qui peut être de trois types.
Un message dattention Warning signale simplement une bizarrerie dans le programme qui ne lempêche pas cependant dêtre compilé et exécuté ; cest le cas par exemple lorsquon déclare une variable sans lutiliser : le compilateur affiche Warning : xxx declared but never used (xxx déclarée mais jamais utilisée), où xxx désigne le nom de la variable en question (en fait le message est un peu plus long, car le compilateur précise le numéro de ligne et le nom de la fonction courante). De tels messages sont peut-être des erreurs du programmeur, ou peut-être pas. Ils nempêchent nullement le programme de fonctionner, et peuvent donc être ignorés, bien quil soit généralement préférable dy prêter attention.
Un message Error signale une erreur qui empêche le programme de fonctionner. C++ continue cependant la compilation (si les options par défaut sont choisies) jusquà la fin du fichier, afin de signaler par la même occasion les autres erreurs. Cependant, la première erreur peut en provoquer toute une série dautres. Ainsi un point-virgule mal placé (voir exemple ci-après) peut engendrer des dizaines de messages derreur successifs, car il ôte au compilateur ses points de repère, lui faisant ainsi « perdre les pédales ». De telles erreurs de syntaxe sont fréquentes, surtout pour un débutant, ainsi que les erreurs en frappant un nom de variable. Elles doivent être corrigées impérativement pour que le programme puisse fonctionner.
Dans certains cas rares, il arrive quune erreur fatale (Fatal error) se produise en cours de compilation ; celle-ci sarrête alors immédiatement. Cest le cas notamment des débordements de mémoire (Fatal error : out of memory).
Il est important de savoir que les messages derreur ne sont pas toujours ceux attendus. En effet, le compilateur signale le premier terme qui lempêche daccepter le texte, mais il se peut que lerreur soit avant. Par exemple, le code suivant :
int fonction(void); // erreur ici { // texte de la fonction...
provoque larrêt du compilateur sur la ligne contenant laccolade ouvrante {
, avec le message Error : declaration was expected, cest-à-dire une déclaration était attendue. En effet, à cette étape cest ce qui devrait suivre du point de vue du compilateur. Mais en réalité, il ne fallait pas mettre de point-virgule à la fin de la ligne précédente (voir la différence entre déclaration et définition de fonction plus loin).
Précédent | Sommaire | Suivant |