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