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.