Cours 8.1. Syntaxe des fonctions en C

Introduction

Parfois appelée sous-programme, module ou procédure, une fonction est un groupe d'instructions qui réalise une tâche donnée. Chaque programme en C est composé d'au moins une fonction, qui est main(). L'idée des fonctions est de ne pas répéter le même extrait de code à différents endroits du programme. On écrit ce code dans une fonction et il suffit d'appeler cette fonction à chaque fois que cela est nécessaire. Dans les cours précédents, nous avons déjà utilisé quelques fonctions :

Lorsque l'on utilise une fonction, on parle d'un appel à la fonction. Le code suivant est un appel à la fonction print :

printf ("Hello");

Syntaxe

Considérons, pour l'exemple, la fonction max() suivante qui retourne le plus grand des deux entiers a et b:

int max(int a, int b);

La syntaxe de cette fonction est illustrée ci-dessous :

Syntaxe d'une fonction en C

Détaillons cette syntaxe :

Schéma de la fonction max() qui retourne le plus grand de deux entiers

Prototype et implémentation

L'écriture d'une fonction se réalise en deux parties :

Voici un exemple de structure d'un programme complet avec l'implémentation d'une fonction :

#include <stdio.h>

// Prototype de la fonction
int max (int a, int b);

// Programme principal
int main(void)
{
  // Appel de la fonction max
  printf ("Le plus grand est %d", max(12, 7));
  return 0;
}

// Implémentation de la fonction
int max(int a, int b)
{
  if (a>b) return a; else return b;
}

Exercices

Exercice 1

On fournit deux fonctions addition() et soustraction() qui retournent respectivement la somme et la soustraction des paramètres a et b :

// Additionne a et b et retourne le résultat
int addition (int a,int b) {
  return a+b;
}
// Soustrait b à a et retourne le résultat
int soustraction (int a,int b) {
  return a-b;
}

En utilisant ces fonctions comme modèles, compléter le programme avec

Fonction addition       : x + y = 12
Fonction soustraction   : x - y = 4
Fonction multiplication : x * y = 32

Exercice 2

Écrire un programme qui contient une fonction int carre (int n) qui calcule le carré de l'entier n. Testez votre fonction avec le programme principal suivant :

int main(void) {
  int x=8;
  printf("%d*%d = %d\n", x, x, carre(x));
  return 0;
}

Exercice 3

Écrire un programme qui contient une fonction char pair (unsigned int n) qui retourne :

Tester la fonction avec un programme principal qui demande à l'utilisateur de saisir un entier avant d'afficher s'il est pair ou impair.

Entrez un entier : 15
15 est un nombre impair.

La fonction pair() ne doit rien afficher, mais retourner 0 ou 1 au programme principal.

Quiz

En C, une fonction permet :

Vérifier Bravo ! Il y a de nombreux avantages à utiliser des fonctions en C. Essaie encore ...

Combien de paramètre(s) possède la fonction suivante :

int Ma_function (float x, unsigned short Val);
Vérifier Bravo ! Les paramètres de la fonction se trouvent dans les parenthèses. Essaie encore ...

Le prototype d'une fonction ...

Vérifier Bravo ! Les prototypes sont indispensable pour écrire du code correctement structuré. Essaie encore ...

Le prototype d'une fonction se place ...

Vérifier Bravo ! Les prototypes doivent être placés avant le premier appel de la fonction, donc avant le programme principal. Essaie encore ...

L'implémentation d'une fonction ...

Vérifier Bravo ! L'implémentation, comme son nom l'indique contient le code de la fonction. Essaie encore ...

L'implémentation d'une fonction se place ...

Vérifier Bravo ! L'implémentation d'une fonction se place après le programme principal. Essaie encore ...

Voir aussi


Dernière mise à jour : 09/11/2023