Comment créer des fonctions qui retournent des valeurs dans la programmation de c

Une grande majorité des fonctions du langage C retourner une à valeur qui est, ils génèrent quelque chose. Votre code ne peut pas utiliser les valeurs, mais ils sont rentrés de toute façon.

Une fonction qui renvoie une valeur illustre une fonction qui est envoyé une valeur, puis retourne une autre valeur. Voilà la façon dont la plupart des fonctions de travail, bien que certaines fonctions renvoient des valeurs sans recevoir nécessairement. Par exemple, getchar () retourne entrée, mais ne nécessite pas d'arguments. Dans une version plus stricte, la fonction convert () accepte une valeur Fahrenheit et retourne son équivalent Celsius.

Une fonction qui renvoie une valeur

#include flotteur converti (float f) -int main () {float temp_f, temp_c-printf ("Température en degrés Fahrenheit:") -scanf ("% f", temp_f) -temp_c = convertir (temp_f) -printf ("% .1fF est .1fC% n ", temp_f, temp_c) -retour (0) -} float converti (float f) {float tt = (F - 32) / 1,8-retour (t) -}

Ligne 3 dans une fonction qui retourne une valeur déclare le prototype de la fonction convert (). La fonction requiert une valeur en virgule flottante et renvoie une valeur à virgule flottante.

La fonction convert () est appelée à la ligne 11. Sa valeur de retour est stocké dans la variable temp_c sur cette même ligne. Dans la ligne 12, printf () affiche la valeur d'origine et la conversion. L'espace réservé .1f est utilisé. Il limite en virgule flottante sortie vers tous les numéros à la gauche de la virgule, mais un seul numéro à droite.

La fonction convert () commence à la ligne 16. Il utilise deux variables: F contient la valeur passée à la fonction, une température en degrés Fahrenheit. Une variable locale, t, est utilisé pour calculer la valeur de température en degrés Celsius, a déclaré à la ligne 18 et affecté par la formule sur la ligne 20.




Ligne 20 convertit la valeur f Fahrenheit dans la valeur t Celsius. Les parenthèses autour de f - 32 directement le compilateur pour effectuer cette partie du calcul d'abord et ensuite diviser le résultat par 1,8. Si vous omettez les parenthèses, 32 est divisé par 1,8 en premier, ce qui conduit à un résultat incorrect.

Le résultat de la fonction est renvoyé à la ligne 21 en utilisant le mot-clé de retour.

Exercice 1: Tapez le code source d'une fonction qui retourne une valeur dans votre éditeur. Construire et exécuter.

Fonctions qui renvoient des valeurs peuvent avoir que la valeur stockée dans une variable, comme le montre la ligne 11 d'une fonction qui retourne une valeur, ou vous pouvez également utiliser la valeur immédiatement. Par example:

printf (".% 1FF est .1fC% n", temp_f, convertir (temp_f)) -

Exercice 2: Modifier le code source d'une fonction qui retourne une valeur de sorte que la fonction convert () est utilisé immédiatement dans la fonction printf (). Astuce: Cela ne veut pas la seule ligne dont vous avez besoin pour fixer en place pour faire le changement complet.

Vous pouvez également remarquer que la fonction convert () a lui-même un élément redondant. Avez-vous vraiment besoin de la t en ce que la fonction de variable?

Exercice 3: Modifier votre code source à partir de l'exercice 2, cette fois à éplucher le t variable de la fonction de conversion ().

Honnêtement, vous pouvez simplement supprimer la fonction convert () tout à fait, car il est une seule ligne. Pourtant, au profit d'une fonction comme celle-là est que vous pouvez appeler à partir de n'importe où dans votre code.

Alors plutôt que de répéter la même chose encore et encore, et d'avoir à modifier ce morceau de texte répété maintes et maintes quand quelque chose change, vous créez simplement une fonction. Une telle chose est parfaitement légitime, et il a fait tout le temps en C.

Une version plus serré montre le résultat final pour l'exercice 3.

UNE VERSION SÉVÈREMENT

#include flotteur converti (float f) -int main () {float temp_f-printf ("Température en degrés Fahrenheit:") -scanf ("% f", temp_f) -printf ("% 1FF est .1fC%. n" , temp_f, convertir (temp_f)) - retour (0) -} float converti (float f) {return (f - 32) / 1.8-}

Le calcul de la fonction convert () est comprimé à une ligne, donc une variable de stockage temporaire (t de la ligne 18 dans une fonction qui retourne une valeur) est pas nécessaire.


» » » » Comment créer des fonctions qui retournent des valeurs dans la programmation de c