[Powered by Google Translate] CHRIS GERBER: Eine Funktion ist eine Reihe von Schritten innerhalb eines
größeres Programm, das normalerweise dazu bestimmt ist, aufgerufen werden
mehrfach und von mehreren anderen Standorten in
das Programm.
Beim Erstellen einer C-Funktion ist eine der Voraussetzungen, um
geben einen Rückgabewert Typ.
Der einfachste Fall ist eine Situation, wo die aufrufende
Code nicht mit dem Ergebnis der Funktion betroffen.
Dies könnte der Fall sein, wenn wir Druckdaten werden dem
Benutzer-Display, wie bei printf.
In diesem Fall können wir Rückgabewert deklarieren
vom Typ nichtig.
Mit Leere einfach sagt dem Compiler, dass keine
Wert zurückgegeben werden.
Mal sehen, wie das aussieht.
>> Lassen Sie uns sagen, dass wir eine Funktion namens say_hello haben, dass
nimmt ein Argument.
Wir geben sie den Namen einer Person und es wird eine Begrüßung angezeigt
auf dem Bildschirm.
Der Name wird vom Typ char * sein.
Und wir, dass als Argument angeben.
Meine Anwendung muss nicht wissen, was gedruckt wurde oder wenn es
gedruckt wurde.
So ist der Rückgabewert vom Typ void sein.
Diese Funktion kann auf dem Bildschirm mit einem Befehl wie gedruckt
printf ("Hallo,% s \ n
", Name);.
Die Begrüßung wird angezeigt und die Kontrolle wird weitergegeben
Rücken an den aufrufenden Code.
Eine Sache zu beachten ist, dass, wenn der Rückgabewert Typ void ist,
Sie brauchen nicht um eine Rückkehr zählen
Anweisung in der Funktion.
Wenn Sie ein beinhalten wählen, enthalten keinen Rückgabewert
als Argument.
>> In manchen Fällen ist es sinnvoll, einen zurück
Wert aus einer Funktion.
Lassen Sie uns sagen, dass wir schriftlich eine Funktion namens add_floats.
Wir geben es zwei Argumente, beide Schwimmer,
als erste und zweite.
Und es wird uns sagen, was die Summe dieser Schwimmer ist.
Wir wissen, dass, wenn wir zwei Schwimmern addieren, das Ergebnis
wird ein Schwimmer sein.
Da wählen wir eine Rückkehr Art von Schwimmer.
Diese Funktion wird diese Berechnung durchzuführen und kehren
die Werte in einer Anweisung wie Rückkehr
erste + zweite;.
Wenn die Kontrolle zurück an den aufrufenden Code übergeben, der
resultierende Wert ist ab sofort für diesen Code.
Wir können diesen Wert wie so speichern: float result =
add_floats (3,14, 1,62
);.
Ergebnis wäre in diesem Fall enthält nun den Wert 4,76.
>> Als Erinnerung sind Fließkommazahlen ungenau.
Also, wenn dies eine finanzielle Kalkulation mit Dollar und
Cent, kann wollen wir eine genaue Datentyp wie halten
int und führen die Berechnung in Pennies.
>> Ein weiterer Fall, wo wir sein wollen, um einen Wert aus einem zurückkehren würde
Funktion ist, wenn wir wissen, ob eine Funktion war möchten
erfolgreich.
Wenn er nicht erfolgreich war, können wir auch wissen wollen, welche Art von
Fehler aufgetreten ist.
Lassen Sie uns sagen, dass wir versuchen, eine Datei auf der Festplatte öffnen zu zählen
die Anzahl von Zeichen in ihm.
Wenn die Datei nicht geöffnet werden kann, wollen wir in der Lage sein zu stoppen und
sagen, der Benutzer über das Problem.
>> Wir rufen unsere Funktion count_file_chars und es wird
ein Argument.
Wir werden in den Namen der Datei übergeben mit einem
char * als Dateinamen.
Diese Funktion kann wie folgt aussehen.
In diesem Beispiel würden wir erwarten, dass die Zahl wieder auf
0 oder mehr.
Dies lässt uns die negativen ganzen Zahlen
verwenden, wie Sentinel-Werte.
Ein Wächter Wert ist einfach ein spezieller Wert, der nicht
legitime Daten jedoch Informationen vermitteln.
Hier, wenn ich eine -1 an den aufrufenden Code zurück, bin ich
tatsächlich die Nachricht sendet, dass ein Fehler aufgetreten
versuchen die Datei zugreifen.
Ich könnte dann überprüfen, dass die Rückkehr, um zu bestimmen, ob mein
Aufruf der Funktion erfolgreich war.
Wenn die Zahl 0 war oder mehr, würde ich wissen, dass die
Anzahl der Zeichen in der Datei.
Wenn jedoch die Zahl kleiner als 0, konnte ich einfach
drucken, dass ein Problem aufgetreten ist.
Ein Trade-off zu berücksichtigen, dass durch die Reservierung von all dem
negative Werte als Sentinel-Werte, vorausgesetzt, dies ist ein
32-Bit-Integer, habe ich im wesentlichen weg um aufgenommen
2 Milliarden möglichen Rückgabewerte.
>> Rückgabewert Typen sind eines der wichtigsten Elemente der
Funktionsaufrufe.
Hoffentlich wird diese kurze Übersicht hat Ihnen geholfen, darüber nachzudenken
drei Typen: void, Ergebniswerte und Sentinel-Werte,
und wenn jede der drei ausgefüllt werden
entsprechenden in Ihrem Code.
Danke fürs Zuschauen.