L'appel d'une fonction se fait simplement en spécifiant le nom de la fonction suivi des paramètres entre parenthèses :
x = max (4,3);
Les paramètres peuvent être :
Il est possible de mixer les paramètres tant que ces derniers respectent les types déclarés dans le prototype :
#define N 10
int max(int a, int b);
int main(void)
{
float x,y=2,z=18;
x = max (5,26); // Valeurs
x = max(y,z); // Variables
x = max(y,N); // Variables et constante
x = max (max(y,z), 10); // Fonction et valeur
if (max(y,z) > 10) { // Variables dans un test
...
}
...
}
L'appel d'une fonction est toujours suivi de parenthèses afin de différencier la fonction des variables du même nom. Analysons l'exemple suivant :
int name (void) {
int name=26;
return name;
}
Le code ci-dessus implémente une fonction name()
qui contient une variable du même nom.
Lorsque name
est suivi de parenthèses, il s'agit de la fonction, sinon de la
variable. Sans les parenthèses, le compilateur ne peut pas différencier la variable
name
de la fonction name()
. On ajoute toujours des parenthèses après le nom d'une
fonction, y compris dans un texte ou des commentaires.
Bien sûr, ce type de code est à bannir pour éviter les confusions.
Ecrire une fonction moyenne()
qui retourne la moyenne de trois nombres flottants. Tester
votre fonction avec un programme principal qui demande à l'utilisateur de saisir trois
notes avant d'en afficher la moyenne. La fonction moyenne()
ne doit rien afficher, mais retourner
le résultat du calcul au programme principal.
Entrez la première note : 12.4 Entrez la seconde note : 13.7 Entrez la troisième note : 10.2 ----------------------- La moyenne est de 12.10
L'appel de la fonction ...
Lors de l'appel d'une fonction, les paramètres peuvent être ...
Considérons la fonction suivante, quels appels sont corrects ?
int max (int a, int b);
Considérons une fonction max()
qui retourne le plus grand de deux entiers. Qu'affiche le code suivant ?
int x;
x = max( 10, max (5,12));
printf ("%d", x );