Introduction au langage C Fonctions et Procédures 1ère année Génie Informatique Dr Daouda Traoré Université de Ségou email: daoudatr2008@gmail.com
Introduction Les fonctions et les procédures permettent d’éviter des séquences d’instructions répétitives dans le code d’un programme, elles permettent de simplifier l’écriture du code du programme et de le rendre plus lisible. Une fonction permet d’exécuter dans plusieurs partie du code d’un programme une même séquence d’instructions. Une procédure est une fonction qui ne retourne pas de valeur en sortie.
Déclaration d’une fonction Une fonction est définie par son nom, une liste d’arguments qui correspondent à des informations qui lui sont transmises, son type de retour et la séquence d’instructions qu’il contient. La syntaxe de la déclaration d’une fonction est la suivante : type_retour Nom_fonction(typeArg1 arg1, typeArg2 arg2, …) ; La syntaxe de la définition d’une fonction est la suivante : type_retour Nom_fonction(typeArg1 arg1, typeArg2 arg2, …) { séquence d’instructions de la fonction; } type_retour représente le type de retour de la fonction, si la fonction ne renvoie rien alors le type de retour sera le mot-clé void La déclaration d’une fonction peut correspondre aussi à sa définition
Appel d’une fonction Pour exécuter une fonction, il suffit de faire appel à elle en écrivant son nom suivi d’une parenthèse ouverte (avec éventuellement des arguments séparés par des virgules) puis d’une parenthèse fermée : nom_fonction(); // sans argument nom_fonction1(arg1, arg2, arg3); //arg1, arg3 et arg3 doivent être définis Une fonction doit être déclarée ou définie avant d’être appelée.
Arguments formels et arguments effectifs On appelle arguments formels les noms des arguments qui figurent dans l’en-tête de la fonction lors de sa déclaration. Ils permettent de décrire ce que la fonction doit faire. On appelle arguments effectifs les noms des arguments fournis lors de l’appel (utilisation) de la fonction.
L’instruction return L’instruction return permet de définir la valeur du résultat de la fonction, et, en même temps d’interrompre l’exécution de la fonction en revenant dans la fonction qui l’a appelée. Exemple : //calcule de x2 double calculCarre(double x) { return x*x; }
L’instruction void L’instruction void permet de préciser qu’une fonction ne retourne aucune valeur Exemple : void afficher(int x) { printf("Voici la valeur en argument de la fonction :%d",x); }
Portée de variables On appelle portée (visibilité) d’une variable la portion du code où la variable peut être accessible (ou visible). On appelle variable globale une variable qui est accessible partout dans le code. Cette variable doit déclarée avant la définition de toute fonction ou tout bloc (entre { }, ou boucle) d’instructions. N’importe quelle fonction du programme pourra faire appel à cette variable. On appelle variable locale une variable qui a pour portée limitée seulement à l’intérieur du bloc d’instructions(entre accolades, dans une fonction ou boucle par exemple) dans lequel elle est déclarée.
Portée de variables Les variables globales existent pendant toute l’exécution du programme dans lequel elles apparaissent. On dit qu’elles font partie de la « classe d’allocation statique » Les variables locales ont une « durée de vie » limitée à celle d’une exécution du bloc dans lequel elles figurent. On dit qu’elles font partie de la « classe d’allocation automatique»
Exemple d’utilisation Ecrire une fonction qui retourne la puissance 5ème de son entrée //version1 int mafonction(int a) { return a*a*a*a*a; } //version2 int mafonction2(int a) { int resultat = 1; int i; for(i=1; i <= 5; i++) { resultat = resultat*a; return resultat;