[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.