Vous êtes sur la page 1sur 7

Les fonctions

EL Moukhtar ZEMMOURI

ENSAM – Meknès

Version 1.0 – 2016 / 2017

Sommaire

• Introduction
• Définition d'une fonction
• Appel d'une fonction
• Déclaration de fonctions
• Variables locales vs globales
• Récursivité

E. Zemmouri, ENSAM - Meknès


Introduction

• Un programme C peut être décomposé en sous programmes


appelés fonctions.
• Pourquoi faire :
o Facilite la résolution de problèmes complexes
o Réutilisabilité du code
o Vérification et maintenance de code
o …

• En C tout est fonction


o C'est pourquoi on doit avoir au moins la fonction principale main.

E. Zemmouri, ENSAM - Meknès

Définition d'une fonction en C

• La définition d'une fonction est donnée par le code source de


son algorithme
• Syntaxe :
type nom_fonction (type1 arg1, ... , typeN argN) {
Déclaration de variables locales
Instructions

• Exemple : la fonction PGCD

E. Zemmouri, ENSAM - Meknès


Définition d'une fonction en C

• L'entête de la fonction contient :


o Le type de la fonction : c'est le type de la valeur de retour de la fonction
• Une fonction qui ne retourne rien est de type void
o nom_fonction : c'est l'identificateur de la fonction
o arg1, arg2, … , argN : sont les arguments de la fonction
• Appelés aussi paramètres formels

• Si la fonction n'a pas d'arguments :


type nom_fonction ( ) ou type nom_fonction (void)

E. Zemmouri, ENSAM - Meknès

Définition d'une fonction en C

• Valeur de retour d'une fonction :


o Une fonction renvoie une valeur à l'aide de l'instruction return
o Syntaxe : return expression ;
• C'est l’instruction de retour à la fonction appelante
o Une fonction contient une ou plusieurs instructions return
o La première return exécutée met fin à la fonction et renvoie une valeur à la
fonction appelante
o Une fonction de type void :
• Se termine par return ;

• Ou pas d'instruction return.

E. Zemmouri, ENSAM - Meknès


Exemple

• La fonction prime :
o Si n == 1, la fonction se termine et revoie 0 (false)
o Si on trouve un diviseur de n, la fonction se termine et renvoie 0
o Sinon à la fin la fonction renvoie 1
• La fonction printPrimes :
o L'instruction return à la fin est optionnelle.

E. Zemmouri, ENSAM - Meknès

Appel d'une fonction


• Une fonction peut être appelée par une autre
fonction à l’aide de la syntaxe suivante :

nom_fonction (param1, ... , paramN)

o param1, … , paramN : sont les paramètres


éffectifs de la fonction

o è les valeurs sur lesquelles s'exécutera la


fonction.

• L'ordre et les types des paramètres effectifs


doivent concorder avec ceux des paramètres
formels (arguments).

E. Zemmouri, ENSAM - Meknès


Déclaration de fonctions

• Une fonction est déclarée par son prototype :


type nom_fonction (type1, ... , typeN);

• Règle :
o Toute fonction doit être définie ou déclarée avant sont premier appel.

• Exemple :
• Note :
o Les noms des paramètres sont optionnels dans la déclaration.

E. Zemmouri, ENSAM - Meknès

Variables locales/globales
• Variable globale : une variable déclarée en dehors de toute fonction

o è elle est permanente

o è elle est accessible (visible) dans la partie du programme qui suit sa


déclaration

o è par défaut initialisée à zéro.

• Variable locale : une variable déclarée dans une fonction


o è elle est temporaire

o è elle est accessible juste dans la fonction où elle est déclarée.

• Les paramètres sont traités comme des variables locales

E. Zemmouri, ENSAM - Meknès


Variables locales/globales

E. Zemmouri, ENSAM - Meknès

Récursivité

• Exemple : la fonction factorielle

Version itérative Version récursive

E. Zemmouri, ENSAM - Meknès


Récursivité

• Une fonction récursive est une fonction qui appel elle même.
• Conception d'une fonction récursive :
o Attention à la condition de terminaison

E. Zemmouri, ENSAM - Meknès

Vous aimerez peut-être aussi