Eléments de base du langage C - Les fonctions

Index de l'article


Les fonctions

 

Comme dans tous les langages, le C permet également de décomposer un grand problème en plusieurs tâches ou modules. Ces modules peuvent être:

 

La fonction

 

Une fonction permet de calculer une seule valeur. L'utilisation d'une fonction dans un programme peut être assimilée à celle d'une variable car la fonction a toujours un type de retour: celui de la valeur calculée.

 

Les procédures

 

Une procédure par contre peut renvoyer plusieurs valeurs, aucune valeur ou un message d'erreur. La procédure n'a donc pas de type particulier. En C on ne parlera que de fonction mais la procédure sera simulée:

  • Lorsqu'il faudra lire tout simplement une valeur ou afficher un résultat.
  • Lorsqu'une fonction ne pourra fournir aucune valeur.
  • Lorsqu'une fonction ne pourra fournir qu'une valeur non scalaire.
    Exemple: Les listes chaînées, les vecteurs.
    Exemple: float exemple(float a, int b, int c)

Lors de la déclaration d'une fonction, les noms des variables en paramètre ne sont importants.
Les paramètres utilisé lors de la définition d'une fonction sont les paramètres utilisés lors de l'appel d'une fonction sont les paramètres effectif ou réels.
L'instruction return permet de mentionner la valeur de retour. Ainsi on peut avoir le code suivant:

 

float exemple(float x, int b, int c)

 

{

 

return(x*x+b*x+c);

 

}

 


L'instruction return peut apparaitre à plusieurs reprises au sein d'une même fonction.

 

Exemple d'utilisation d'une fonction

 

#include< stdio.h >

 

#include< conio.h >

 

main()

 

{

 

float exemple(float, int, int);

 

{

 

float x=1,5;

 

float y,z;

 

int n=3, p=5; q=10;

 

y = exemple(x,n,p);

 

printf("Valeur de y: %f\n", y);

 

z = exemple(x+0,5, q, n-1);

 

printf("éaleur de: %\n", z);

 

return 0;

 

}

 

float exemple(float x, int b, int c)

 

{

 

float val;

 

val = x*+b*x+c;

 

return val;

 

}

 

}

 

Déclaration

 

type élément nom(liste des arguments)

Exemple

 

floatabsolu_som(float a, float b)

 

{

 

float s;

 

s = a+b;

 

if(s>0) return(s);

 

else

 

return(-s);

 

}

 

 


Cas d'une fonction n'ayant pas de valeur de retour ou sans argument

 

Fonction sans valeur de retour:

Exemple: void sans_valeur(int n);
Une telle fonction ne doit en principe contenir aucune instruction return.

Fonction sans argument:

Exemple: float merci(void);
En général en C, on peut définir une fonction avant ou après la fonction main(). Dans le cas où la fonction est définie avant la fonction main(), on n'est plus obligé de la déclarer dans la fonction main() parce que la valeur est une valeur globale.