Résumé
Cette leçon décompose le programme minimal de C++ en ses pièces et explique le rôle de chacune. La directive d’inclusion déclare de quelles parties de la bibliothèque le programme dépend, et chaque composant exige son propre en-tête, même si un autre l’apporte parfois « par ricochet » ; la fonction main est le point d’entrée, et sa valeur de retour, le code de sortie que reçoit le système ; l’espace de noms std réunit les noms de la bibliothèque, et le cours les écrit toujours avec leur préfixe ; les instructions se terminent par un point-virgule, les accolades groupent les instructions en blocs et les commentaires expliquent ce que le code ne dit pas de lui-même. La leçon se termine par le guide de style que le cours suit dans tous ses programmes, et par la manière de lire le code d’autrui qui utilise std::cout et std::endl.
Objectifs d’apprentissage
- Identifier dans un programme la directive d’inclusion, la fonction
main, les instructions, les blocs et les commentaires, et expliquer le rôle de chacun. - Expliquer ce que fait
#includeet pourquoi chaque composant de la bibliothèque exige son propre en-tête, même si le programme compile sans lui avec un compilateur donné. - Corriger un programme comportant des erreurs de structure (accolade non fermée, point-virgule absent, en-tête omis) à partir des messages du compilateur, lus depuis le premier.
- Réécrire un programme selon le guide de style du cours et justifier chaque changement.
Le programme minimal
Dans la leçon précédente, on a compilé et exécuté un programme sans l’examiner. On le lit maintenant ligne par ligne, car chaque ligne répond à une exigence distincte : l’une du langage, une autre du système d’exploitation, une autre de celui qui lit le code. Voici le programme.
// Premier programme : écrit une ligne et se termine.#include <print>int main(){ std::println("Bonjour, le monde");}Bonjour, le mondeLa première ligne est un commentaire : il commence par deux barres obliques et va jusqu’à la fin de la ligne, et le compilateur l’écarte ; il est écrit pour qui lira le programme. La deuxième est une directive d’inclusion : elle demande qu’avant la compilation on incorpore l’en-tête <print>, où la bibliothèque standard déclare std::println. La ligne vide n’a aucun effet ; elle sépare la préparation du programme de son contenu. La quatrième ligne ouvre la fonction main, l’endroit où commence l’exécution, et l’accolade de la cinquième ouvre son bloc, qui se ferme à la dernière ligne. Dans le bloc il n’y a qu’une seule instruction, terminée par un point-virgule : l’appel à std::println, qui écrit le texte entre guillemets puis un saut de ligne.
Il faut remarquer que le programme ne contient aucune instruction pour se terminer. En arrivant à l’accolade finale de main, l’exécution se termine, et le programme communique au système que tout s’est bien passé ; on verra plus loin comment. Il s’ensuit que cinq pièces suffisent pour un programme complet : commentaires, directives, la fonction main, blocs et instructions. Les sections suivantes les examinent dans cet ordre, sauf les commentaires, qui sont traités avec les instructions et les blocs.
Dans le programme de salutation, la directive est la ligne 2 ; la fonction main occupe les lignes 4 à 7 ; son bloc va de l’accolade de la ligne 5 à celle de la ligne 7 ; l’unique instruction est la ligne 6, et l’unique commentaire, la ligne 1. Si l’on efface le commentaire, le programme se compile de la même façon et produit la même sortie ; si l’on efface n’importe laquelle des autres pièces, il cesse de compiler ou d’être un programme.
Chargement du contenu…