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 :
printf()scanf()Lorsque l'on utilise une fonction, on parle d'un appel à la fonction. Le code suivant
est un appel à la fonction print :
printf ("Hello");
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 :

Détaillons cette syntaxe :

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;
}
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
multiplication() qui retourne le produit de ses deux paramètres :Fonction addition : x + y = 12 Fonction soustraction : x - y = 4 Fonction multiplication : x * y = 32
É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;
}
Écrire un programme qui contient une fonction char pair (unsigned int n) qui retourne :
0 si n est un nombre impair ;1 si n est un nombre pair ;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.
En C, une fonction permet :
Combien de paramètre(s) possède la fonction suivante :
int Ma_function (float x, unsigned short Val);
Le prototype d'une fonction ...
Le prototype d'une fonction se place ...
L'implémentation d'une fonction ...
L'implémentation d'une fonction se place ...