[Powered by Google Translate] CHRIS GERBER: Une fonction est une série de mesures dans un
programme plus vaste, qui est généralement destiné à être appelé
plusieurs fois et à partir de plusieurs endroits dans les autres
le programme.
Lors de la création d'une fonction C, l'une des exigences est d'
spécifier un type de valeur de retour.
Le cas le plus simple est une situation où l'appelant
Le code n'est pas concerné par le résultat de la fonction.
Cela pourrait être le cas lorsque nous imprimons des données à l'
affichage de l'utilisateur, comme avec printf.
Dans ce cas, nous pouvons déclarer une valeur de retour
être de type void.
Utilisation vide indique simplement au compilateur qu'aucune
valeur sera retournée.
Voyons voir à quoi cela ressemble.
>> Disons que nous avons une fonction appelée say_hello que
prend un argument.
Nous allons lui passer le nom d'une personne et il affichera un message d'accueil
sur l'écran.
Le nom sera de type char *.
Et nous allons spécifier que l'argument.
Ma demande n'a pas besoin de savoir ce qui a été imprimé ou si elle
a été imprimé.
Ainsi, la valeur retournée sera de type void.
Cette fonction peut afficher à l'écran avec une commande comme
printf ("Bonjour,% s \ n
", Nom);.
Le message d'accueil s'affiche et le contrôle sera passé
sauvegarder au code appelant.
Une chose à noter est que lorsque le type de valeur de retour est nulle,
vous n'avez pas besoin d'inclure un retour
déclaration de la fonction.
Si vous choisissez d'inclure un, ne comportent pas de valeur de retour
comme argument.
>> Dans certains cas, il est judicieux de renvoyer une
valeur de fonction.
Disons que nous avons écrit une fonction appelée add_floats.
Nous allons le passer deux arguments, les deux flotteurs,
appelé premier et deuxième.
Et il va nous dire ce que la somme de ces flotteurs.
Nous savons que si nous ajoutons deux flotteurs ensemble, le résultat
sera un flotteur.
Compte tenu de cela, vous choisissez un type de retour de flotteur.
Cette fonction permet de réaliser ce calcul et retourner
les valeurs d'une déclaration de ce genre de retour
premier + second.
Lorsque le contrôle est renvoyé au code appelant, l'
valeur résultante est maintenant disponible à ce code.
Nous pouvons stocker cette valeur comme ceci: float = résultat
add_floats (3,14, 1,62
);.
Résultat dans ce cas serait maintenant contenir la valeur 4,76.
>> Pour rappel, les valeurs flottantes sont imprécises.
Donc, si cela était un calcul financier, en dollars et
cents, on peut opter pour un type précis de données tels que
int et effectuez le calcul dans quelques centimes.
>> Un autre cas où nous voudrions retourner une valeur à partir d'un
fonction, c'est quand nous voulons savoir si une fonction a été
succès.
Si elle n'a pas réussi, nous pouvons aussi savoir quel type de
erreur s'est produite.
Disons que nous allons essayer d'ouvrir un fichier sur le disque de compter
le nombre de caractères dans celui-ci.
Si le fichier ne peut être ouvert, nous voulons être en mesure d'arrêter et de
indiquer à l'utilisateur sur le problème.
>> Nous allons appeler nos count_file_chars fonction et il sera
prendre un argument.
Nous allons passer dans le nom du fichier en utilisant un
char * nom du fichier appelé.
Cette fonction pourrait ressembler à quelque chose comme ça.
Dans cet exemple, on pourrait s'attendre le nombre retourné à
soit 0 ou plus.
Cela nous laisse les entiers négatifs à
utiliser comme valeurs sentinelles.
Une valeur sentinelle est tout simplement une valeur spéciale qui n'est pas
données légitimes mais ne transmettre de l'information.
Ici, si je retourne un malus de -1 au code appelant, je suis
réellement envoyer le message indiquant qu'une erreur s'est produite lors de
essaie d'accéder au fichier.
Je pourrais alors vérifier que la valeur de retour pour déterminer si mon
appel de fonction a été un succès.
Si le nombre était de 0 ou plus, je voudrais savoir la
nombre de caractères dans l'image.
Toutefois, si le nombre est inférieur à 0, je ne pouvais tout simplement
imprimer qu'un problème s'est produit.
Un compromis à considérer est que, en réservant tous les
des valeurs négatives comme valeurs sentinelles, en supposant qu'il s'agit d'un
32-bit entier, je l'ai emmené essentiellement autour de
2 milliards valeurs de retour possibles.
>> Types de valeurs de retour sont un des éléments les plus importants de
les appels de fonction.
Espérons que ce bref aperçu vous a aidé à penser
trois types principaux: void, les valeurs de résultat, et les valeurs sentinelles,
et lorsque chacun des trois peut être
approprié dans votre code.
Merci d'avoir regardé.