[Powered by Google Translate] CHRIS GERBER: Een functie is een aantal stappen binnen een
groter, dat gewoonlijk zal worden genoemd
meerdere keren en vanuit meerdere andere locaties in
het programma.
Bij het maken van een C-functie, een van de vereisten is
geef een return waarde type.
Het eenvoudigste geval is een situatie waarin de aanroepende
code heeft geen betrekking op het resultaat van de functie.
Dit kan het geval zijn wanneer we afdrukken van gegevens aan de
gebruiker display, zoals bij printf.
In dit geval kunnen we verklaren een return waarde
te zijn van het type nietig zijn.
Met behulp van leegte gewoon vertelt de compiler dat er geen
waarde wordt geretourneerd.
Laten we eens kijken hoe dit eruit ziet.
>> Laten we zeggen dat we een functie genaamd say_hello hebben dat
neemt een argument.
We zullen het doorgeven naam van een persoon en het zal weer een groet
op het scherm.
De naam zal zijn van het type char *.
En we zullen aangeven dat als het argument.
Mijn aanvraag hoeft niet te weten wat er afgedrukt of dat
gedrukt.
Dus de return waarde van het type nietig zijn.
Deze functie kan afdrukken op het scherm met een commando als
printf ("Hallo,% s \ n
", Naam).
De begroeting wordt weergegeven en de controle zal worden doorgegeven
terug naar de aanroepende code.
Een ding om op te merken is dat wanneer de return waarde type void is,
je hoeft niet om een ​​terugkeer zijn
verklaring in de functie.
Als u ervoor kiest te bevatten, niet voorzien van een return waarde
als argument.
>> In sommige gevallen is het zinvol om terug te keren van een
waarde van een functie.
Laten we zeggen dat we een functie genaamd add_floats schrijven.
We passeren het twee argumenten, beide drijvers,
genoemd eerste en tweede.
En het zal ons vertellen wat de som van de praalwagens is.
We weten dat als we twee drijvers aan elkaar toe te voegen, is het resultaat
een float zijn.
Gezien het feit dat wij kiezen voor een terugkeer type float.
Deze functie zal deze berekening en terug te keren
de waarden in een uitspraak als terugkeer
eerste + tweede;.
Wanneer de controle doorgegeven aan de aanroepende code, de
resulterende waarde is nu beschikbaar voor die code.
We kunnen slaan deze waarde als volgt: float result =
add_floats (3,14, 1,62
).
Resultaat in dit geval zou bevatten nu de waarde 4,76.
>> Ter herinnering, floating point waarden zijn onnauwkeurig.
Dus als dit een financiële berekening, met behulp van dollars en
cent, kunnen we willen een nauwkeurige gegevens type zoals beschouwen
int en voer de berekening in centen.
>> Een ander geval waar we zouden willen een waarde uit een terug
functie is als we willen weten of een functie was
succesvol.
Als het niet lukt, kunnen we ook willen wat voor soort weten
opgetreden.
Laten we zeggen dat we proberen om een ​​bestand te openen op de schijf om te tellen
het aantal tekens in.
Als het bestand niet kan worden geopend, willen we in staat zijn om te stoppen en
vertellen de gebruiker over het probleem.
>> We noemen onze functie count_file_chars en het zal
neem een ​​argument.
We passeren in de naam van het bestand met behulp van een
char * naam bestandsnaam.
Deze functie ziet er misschien iets als dit.
In dit voorbeeld zouden we verwachten dat de telling terug naar
0 of meer.
Dit laat ons de negatieve gehele getallen te
gebruiken als schildwacht waarden.
Een schildwacht waarde is gewoon een speciale waarde die niet is
legitieme data maar informatie overbrengen.
Hier, als ik terug een -1 tot de aanroepende code, ben ik
eigenlijk het verzenden van het bericht dat er een fout is opgetreden tijdens
proberen om het bestand te openen.
Ik zou dan controleren of return waarde om te bepalen of mijn
functie-aanroep is gelukt.
Als het nummer 0 was of hoger, dan zou ik weet dat de
aantal tekens in het bestand.
Indien echter het aantal was minder dan 0, I kan gewoon
af te drukken dat er een probleem had voorgedaan.
Een trade-off te overwegen is dat door alle reserveren
negatieve waarden als schildwacht waarden, in de veronderstelling is dit een
32-bits geheel getal, heb ik in wezen weggenomen rond
2 miljard mogelijke terugkeer waarden.
>> Retourwaarde soorten zijn een van de belangrijkste elementen van
functie-aanroepen.
Hopelijk dit korte overzicht je geholpen heeft na te denken over
drie belangrijke soorten: void, resultaat waarden en sentinel waarden,
wanneer elk van de drie kan
passend in uw code.
Bedankt voor het kijken.