Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Déclaration, Type et Retour | Fonctions
Bases Du C

bookDéclaration, Type et Retour

Dans la leçon précédente, vous avez découvert l'anatomie de base des fonctions :

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Déclaration

Avant d'utiliser une fonction, elle doit être déclarée. Appeler une fonction avant sa déclaration entraînera une erreur.

Vous pouvez soit déclarer la fonction entière en même temps que sa définition (comme illustré ci-dessus), soit utiliser un prototype, que nous aborderons en bonus à la fin de ce segment.

Types de fonctions et valeurs de retour

Le type de la fonction informe le compilateur sur le type de données du résultat de la fonction. Par exemple, si notre fonction calcule la somme de deux entiers, nous attendons alors un entier comme résultat.

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

Une incompatibilité entre le type de données et le type de retour peut rendre la fonction (ou même l'ensemble du programme) défaillante.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Lors de l'addition de valeurs non entières, un résultat précis est attendu. Cependant, en raison d'une incohérence de type, le résultat est erroné.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; return result; // Output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Deux facteurs principaux contribuent à cette erreur :

  • Un type de retour incorrect (doit être double) ;
  • L'utilisation d'un spécificateur de format incorrect (%d) dans la fonction printf() (doit être %f).

La version correcte serait :

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Cela implique que le résultat de la fonction peut être directement affecté à des variables/tableaux ou même transmis à d'autres fonctions. Un exemple de ceci est l'utilisation du résultat avec la fonction printf dans les scénarios ci-dessus.

Note
Remarque

Le spécificateur de format pour les nombres à virgule flottante est %f.

Il convient également de mentionner qu'une fonction peut contenir plusieurs instructions return, chacune s'activant sous des conditions distinctes.

question mark

Vous avez construit la fonction count, comment l'appelleriez-vous dans la fonction main ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain more about function prototypes?

What happens if I use the wrong return type in my function?

Can you give an example of a function with multiple return statements?

Awesome!

Completion rate improved to 2.63

bookDéclaration, Type et Retour

Glissez pour afficher le menu

Dans la leçon précédente, vous avez découvert l'anatomie de base des fonctions :

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Déclaration

Avant d'utiliser une fonction, elle doit être déclarée. Appeler une fonction avant sa déclaration entraînera une erreur.

Vous pouvez soit déclarer la fonction entière en même temps que sa définition (comme illustré ci-dessus), soit utiliser un prototype, que nous aborderons en bonus à la fin de ce segment.

Types de fonctions et valeurs de retour

Le type de la fonction informe le compilateur sur le type de données du résultat de la fonction. Par exemple, si notre fonction calcule la somme de deux entiers, nous attendons alors un entier comme résultat.

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

Une incompatibilité entre le type de données et le type de retour peut rendre la fonction (ou même l'ensemble du programme) défaillante.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Lors de l'addition de valeurs non entières, un résultat précis est attendu. Cependant, en raison d'une incohérence de type, le résultat est erroné.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; return result; // Output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Deux facteurs principaux contribuent à cette erreur :

  • Un type de retour incorrect (doit être double) ;
  • L'utilisation d'un spécificateur de format incorrect (%d) dans la fonction printf() (doit être %f).

La version correcte serait :

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Cela implique que le résultat de la fonction peut être directement affecté à des variables/tableaux ou même transmis à d'autres fonctions. Un exemple de ceci est l'utilisation du résultat avec la fonction printf dans les scénarios ci-dessus.

Note
Remarque

Le spécificateur de format pour les nombres à virgule flottante est %f.

Il convient également de mentionner qu'une fonction peut contenir plusieurs instructions return, chacune s'activant sous des conditions distinctes.

question mark

Vous avez construit la fonction count, comment l'appelleriez-vous dans la fonction main ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 2
some-alt