Prog C Fonctions
Prog C Fonctions
Prog C Fonctions
EN LANGAGE C
Procédure Fonction
Syntaxe
<type> <nom_fonction> ([type1 arg1[,type2 arg2, …]])
{
//Corps de la fonction
[return (expression)]
}
• La première ligne c’est l’en-tête de la fonction
• type est le type du résultat retourné. Dans le cas ou la fonction ne retourne pas
de résultat, elle est de type void. Et on n’écrit pas l’instruction return (expression)
• nom_fonction : le nom ou l’identificateur de la fonction
• entre parenthèses, on spécifie les arguments (paramètres) de la fonction et leurs
types.
• return (expression): le mot clé return suivi de la valeur à renvoyer (qui doit être
du même type que la fonction)
Déclaration & Syntaxe
Remarques
• Dans le cas ou une fonction n'a pas d’argument en entrée, on peut déclarer la liste
des paramètres comme (void) ou simplement laisser vide entre parenthèses ( )
• Si une fonction doit retourner une valeur, on fait appel au mot clés « return ».
• Le type de retour doit être le même que le type de la fonction dans l’entête
• Peut être utilisé n’importe où dans le code (là ou on veut quitter la fonction en retournant une valeur)
• Peut exister plusieurs fois dans une fonction
• Pour les fonctions ne retournant rien, soit on utilise l’instruction return sans argument,
soit on met rien.
• Les paramètres (arguments) des fonctions sont des variables locales au bloc
d’instructions de la fonction.
• Cependant, on peut définir d’autres variables dans le bloc
int main ( )
{
…
return 0;
}
Appel d’une fonction
• On appelle une fonction en utilisant son nom, avec la valeur des arguments
entre parenthèses, dans l’ordre de sa définition.
NomFonction (para1,…, paraN)
Remarques:
• Il faut respecter l’ordre et les types des arguments
• Dans le cas d’une fonction ne retournant rien, l’appel de la fonction sera direct :
Affiche ();
• Dans le cas d’une fonction qui retourne une valeur, la fonction doit être utilisée dans
une instruction d’affectation :
• x=Pair(5);
• printf(”%d”, Pair(6));
• Lors de l’appel d’une fonction, les paramètres sont appelés paramètres effectifs (ou
arguments) : ils contiennent les valeurs pour effectuer le traitement.
• Lors de la définition, les paramètres sont appelés paramètres formels
Appel d’une fonction
Exemple :
Exercice
• Ecrire une fonction Maxi2 qui retourne le maximum de
deux entiers donnés.
return Max2(Max2(a,b),c);
Exercice
• Ecrire un programme qui demande à l’utilisateur de
saisir trois réels et qui affiche leur max
Variables locales & globales
• Chaque variable déclarée est accessible dans son contexte de déclaration
• Une variable définie à l'intérieur d’une fonction est une variable locale à la
fonction, et elle n’est connue qu'à l'intérieur de cette fonction
• Elle est créée à l'appel de la fonction et détruite à la fin de son exécution
• Une variable définie à l’extérieur des fonctions est une variable globale
• Elle est définie durant toute l’application et peut être utilisée et modifiée par toutes les
fonctions du programme
Vocabulaire
• Un paramètre formel : appelé paramètre
• Un paramètre effectif : appelé argument
Signification
• Les paramètres placés dans la déclaration d'une fonctions sont des
paramètres formels. Ils peuvent prendre toutes les valeurs possibles
dans le type déclaré mais ils sont abstraits (n'existent pas réellement)
• Les paramètres placés dans l'appel d'une fonction sont des paramètres
effectifs. ils contiennent les valeurs pour effectuer le traitement
Paramètres formels & effectifs
• Un paramètre effectif est une variable ou constante
(numérique ou définie par le programmeur)
Donc :
– Le nombre de paramètres effectifs doit être égal au
nombre de paramètres formels.
– L'ordre et le type des paramètres doivent correspondre
Paramètres formels & effectifs
Paramètres formels
Paramètres effectifs
Transmission des paramètres
Réflexion: quel est le résultat d’exécution des deux
programmes
#include <stdio.h> #include <stdio.h>
void affecte(int a); void affecte(int *);
• Ecrire une fonction incTab qui permet d’incrémenter les valeurs des
cases d’un tableau.