Langage C/Fonctions
Nous allons apprendre à structurer nos programmes en petits bouts… un peu comme si on jouait aux Legos. Tous les gros programmes en C sont en fait des assemblages de petits bouts de code, et ces petits bouts de code sont justement ce qu'on appelle… des fonctions ! Créer et appeler une fonction Nous avons vu dans les tout premiers chapitres qu'un programme en C commençait par une fonction appelée main. Je vous avais même fait un schéma récapitulatif, pour vous rappeler quelques mots de vocabulaire (fig. suivante).
En haut, on y trouve les directives de préprocesseur (un nom barbare sur lequel on reviendra d'ailleurs). Ces directives sont faciles à identifier : elles commencent par un # et sont généralement mises tout en haut des fichiers sources. Puis en dessous, il y avait ce que j’avais déjà appelé « une fonction ». Ici, sur mon schéma, vous voyez une fonction main (pas trop remplie il faut le reconnaître). Je vous avais dit qu'un programme en langage C commençait par la fonction main. Je vous rassure, c’est toujours vrai ! Seulement, jusqu'ici nous sommes restés à l'intérieur de la fonction main. Nous n'en sommes jamais sortis. Revoyez vos codes sources et vous verrez : nous sommes toujours restés à l'intérieur des accolades de la fonction main.
Eh bien, c’est mal d’avoir fait comme ça ?
Non ce n’est pas « mal », mais ce n’est pas ce que les programmeurs en C font dans la réalité. Quasiment aucun programme n'est écrit uniquement à l'intérieur des accolades de la fonction main. Jusqu'ici nos programmes étaient courts, donc ça ne posait pas de gros problèmes, mais imaginez des plus gros programmes qui font des milliers de lignes de code ! Si tout était concentré dans la fonction main, bonjour le bazar… Nous allons donc maintenant apprendre à nous organiser. Nous allons en fait découper nos programmes en petits bouts (souvenez-vous de l'image des Legos que je vous ai donnée tout à l’heure). Chaque « petit bout de programme » sera ce qu'on appelle une fonction. Une fonction exécute des actions et renvoie un résultat. C'est un morceau de code qui sert à faire quelque chose de précis. On dit qu'une fonction possède une entrée et une sortie. La fig. suivante représente une fonction schématiquement.
Lorsqu'on appelle une fonction, il y a trois étapes.
1. L'entrée: on fait « rentrer » des informations dans la fonction (en lui donnant des informations avec lesquelles travailler).
2. Les calculs : grâce aux informations qu'elle a reçues en entrée, la fonction travaille.
3. La sortie : une fois qu'elle a fini ses calculs, la fonction renvoie un résultat. C'est ce qu'on appelle la sortie, ou encore le retour.
Concrètement, on peut imaginer par exemple une fonction appelée triple qui calcule le triple du nombre qu'on lui donne, en le multipliant par 3 (fig. suivante). Bien entendu, les fonctions seront en général plus compliquées.