Les fonctions

  1. Introduction
  2. Création d’une fonction
  3. Appeler une fonction

1. Introduction

Nous allons voir sur ce cours, des notions du mot fonction. Bien évidement, cela n’est pas nouveau pour vous car nous avons déjà vu la structure d’une fonction et la fonction principale main.
Il ne faut pas s’attendre à ce que nous répétions la même chose. Non, si le mot fonction vous parait nouveau, retournez lire ce cours .

Nous allons voir ensemble, ici et tout de suite, comment créer sa propre fonction et comment appeler une fonction dans un programme C ou C++.

2. Création d’une fonction

Pour créer une fonction, il faut définir le prototype de la fonction et la fonction elle-même.

a. Le prototype d’une fonction

Le prototype d’une fonction est une description qui sert à indiquer au compilateur certaines données qui lui permet de vérifier à chaque appel de la fonction que le nom et le type de paramètres, ainsi que les valeurs de retour sont corrects.

Le prototype d’une fonction est identique à l’entête d’une fonction. Il est à noter que le prototype est une instruction, donc il se termine par un point virgule (;).

Syntaxe :
type_fonction nom_fonction (type_argument nom_argument1, type_argument nom_argument2,..);

Exemple :

b. Définir la fonction

Pour définir une fonction, il faut définir l’entête de la fonction, le corps de la fonction et le renvoie de la valeur.

b.1. L’entête de la fonction :

L’entête de la fonction est la même chose que le prototype. Voyons ce que signifient les expressions qui définissent l’entête.

  • type_fonction : détermine le type de la fonction. Le type de valeur que renverra la fonction, c’est-a-dire le type de données que la fonction retournera au programme appelé. Il peut être int, char, long, double….
  • nom_fonction : il s’agit du nom de la fonction. Il doit respecter les mêmes normes que les noms de variables.
  • arguments : ils s’agissent des données transmises à la fonction par le programme.

Exemple 1 :

Exemple 2 :

b.2. Le corps de la fonction :

Le corps de la fonction est constitué par des variables (variables locales) et des instructions. Il est délimité par des accoladés ({}).

Syntaxe :
{
variables locales
instructions
}

Exemple :

b.3. Le renvoie de la valeur

On utilise return pour renvoyer une valeur. le cas de la fonction void, il n'y a aucune valeur à renvoyer.

Syntaxe :
return valeur ;

Exemple :

3. Appeler une fonction

En langage C, les plus gros programmes sont fait à partir des plusieurs petits programmes appelés fonction. Ces petits programmes sont appelés au sein d’un programme pour former un gros programme.
L’avantage de créer des fonctions, est d’éviter de répéter la même chose sur un programme. Ce qui rend le code plus propre et plus lisible.

Bon, voyons via le schéma ci-dessous, comment cela se passe.

Le schéma nous montre clairement comment appeler des fonctions à l’intérieur de la fonction main.

Alors qu’est ce qui se passe réellement si une fonction est appelée ???

Quand une fonction est appelée à un endroit, une fois le programme arrivé sur cet endroit, il exécute toutes les instructions du corps de la fonction avant d’attaquer les instructions se trouvant juste après la fonction.

Il y a une logique nécessaire à comprendre. Par exemple si l’entête de la fonction est int mafonction (int x, int y, int z) et que l’appel de la fonction est mafonction (1,8,9), alors 1 sera attribué à x, 8 à y et 9 à z.

Pour appeler une fonction, nous allons voir tout de suite deux manières de le faire.

a. Première manière.

Nom de la fonction suivi de la liste d’arguments mises entre parenthèses.

Exemple :

b. Deuxième manière

Elle consiste à utiliser la fonction comme étant une expression. Pour bien comprendre, voyons cet exemple :
Exemple :

4. Exemple

Pour vous dire au revoir, nous allons faire un exemple concret pour mieux comprendre la théorie que nous venons d’expliquer :
Notre programme consiste à calculer le nombre total des élèves du lycée.

Code C:

Voici le résultat:



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++