1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Funktionen sind Abschnitte von Code innerhalb eines größeren Programms verwendet 2 00:00:09,640 --> 00:00:11,430 um eine bestimmte Aufgabe auszuführen. 3 00:00:11,430 --> 00:00:15,060 Sie werden auch als Verfahren, Unterprogramme und Unterprogramme bekannt, 4 00:00:15,060 --> 00:00:18,320 da sie wirklich nur Mini-Programme innerhalb der Programme. 5 00:00:18,320 --> 00:00:20,340 Auch wenn Sie vielleicht nicht bemerkt haben, 6 00:00:20,340 --> 00:00:24,090 Sie auf jeden Fall Funktionen bereits, wenn Sie in C programmiert haben 7 00:00:24,090 --> 00:00:26,770 Wenn Sie Zeug schreiben auf dem Bildschirm mit printf, 8 00:00:26,770 --> 00:00:29,380 Sie tatsächlich mit einer Funktion namens printf. 9 00:00:29,380 --> 00:00:33,760 Ebenso sind GetInt und GetString Funktionen, CS50 bietet für Sie. 10 00:00:33,760 --> 00:00:37,750 Als Programmierer benutzen wir Funktionen für eine Anzahl von Gründen. 11 00:00:37,750 --> 00:00:41,240 >> Mit Funktionen, um häufige Aufgaben wie das Schreiben auf dem Bildschirm durchführen 12 00:00:41,240 --> 00:00:44,480 und Auffordern des Benutzers zur Eingabe spart uns Zeit bei der Programmierung. 13 00:00:44,480 --> 00:00:47,510 Es ist nicht nötig, Code zu schreiben, um die gleichen Dinge tun 14 00:00:47,510 --> 00:00:49,520 da sie bereits für uns getan hat. 15 00:00:49,520 --> 00:00:54,580 Es ist nicht einmal notwendig für uns zu verstehen, wie genau diese Funktionen intern arbeiten. 16 00:00:54,580 --> 00:00:58,880 Stattdessen müssen wir nur wissen, wie zu benutzen oder rufen sie in unseren Programmen. 17 00:00:58,880 --> 00:01:02,040 Es ist auch hilfreich, um Funktionen in größere Programme schreiben 18 00:01:02,040 --> 00:01:04,330 auch wenn Sie nicht planen, mit anderen nutzen sie, 19 00:01:04,330 --> 00:01:06,830 nur die Teilung der größeren Aufgabe. 20 00:01:06,830 --> 00:01:11,910 Auf diese Weise erhalten Sie Struktur in Ihre Code viel wie Sie Struktur eines Essays geben würde, 21 00:01:11,910 --> 00:01:15,180 und mit wirklich großen Projekte aktivieren Sie mehrere Personen 22 00:01:15,180 --> 00:01:16,730 an verschiedenen Teilen in der gleichen Zeit arbeiten 23 00:01:16,730 --> 00:01:20,480 da ist es klar, wenn eine Person die Arbeit endet und ein anderer ist beginnt. 24 00:01:20,480 --> 00:01:26,530 >> Funktionen in der Regel auf ein oder mehrere Eingänge, die als Argumente oder Parameter bekannt zu betreiben, 25 00:01:26,530 --> 00:01:30,520 Transformieren dieser Eingänge in einen Ausgabewert, der dann zurückgegeben wird. 26 00:01:30,520 --> 00:01:34,950 Allerdings ist es auch möglich, Funktionen, die nicht mit irgendwelche Eingabeargumente haben 27 00:01:34,950 --> 00:01:36,400 und nicht wieder einen Ausgang. 28 00:01:36,400 --> 00:01:38,790 Okay, genug mit dem flauschigen Material. 29 00:01:38,790 --> 00:01:41,790 Werfen wir einen Blick auf einige reelle Funktionen in C. 30 00:01:41,790 --> 00:01:45,570 >> Hier haben wir eine Funktion namens square, dass Sie es glauben oder nicht, 31 00:01:45,570 --> 00:01:47,570 berechnet das Quadrat der Eingabe. 32 00:01:47,570 --> 00:01:49,490 Lassen Sie sezieren die Syntax von ihm. 33 00:01:49,490 --> 00:01:51,860 Das erste Wort, das Sie sehen, in der Funktion, int, 34 00:01:51,860 --> 00:01:57,460 gibt den Rückgabetyp der Funktion, das heißt, der C-Typ der Funktion den Ausgang. 35 00:01:57,460 --> 00:02:00,370 Diese Funktion ausgeben einen Wert mit Typ int. 36 00:02:00,370 --> 00:02:04,100 Das nächste Wort, das Sie sehen, ist der Name der Funktion, quadratisch in diesem Fall. 37 00:02:04,100 --> 00:02:07,390 Funktionen benennen angemessen ist besonders wichtig 38 00:02:07,390 --> 00:02:11,260 da es wahrscheinlich die meisten sichtbaren Dokumentation dessen, was die Funktion macht. 39 00:02:11,260 --> 00:02:14,880 Es wäre cool, um diese Funktion shazam oder booyah nennen, 40 00:02:14,880 --> 00:02:18,340 aber das würde nicht sagen uns nichts über das, was die Funktion macht. 41 00:02:18,340 --> 00:02:23,470 >> Nach der Name der Funktion kommen die Eingänge für die Funktion, die Argumente. 42 00:02:23,470 --> 00:02:26,380 Sie werden in einer Reihe von Klammern aufgeführt 43 00:02:26,380 --> 00:02:30,160 sowohl mit ihrer Art und eines Namens für sie in dem Körper der Funktion zu verwenden. 44 00:02:30,160 --> 00:02:34,030 Platz dauert nur 1 Argument, das int quadratische, 45 00:02:34,030 --> 00:02:36,160 die ich habe beschlossen, den Namen x geben. 46 00:02:36,160 --> 00:02:40,760 Damit endet die Funktion Erklärung oder Prototyp. 47 00:02:40,760 --> 00:02:43,320 Die geschweiften Klammern umgebenden Rest der Funktion 48 00:02:43,320 --> 00:02:45,870 bezeichnen den Anfang und das Ende der Funktion Körper, 49 00:02:45,870 --> 00:02:48,320 Die Definition der Funktion selbst. 50 00:02:48,320 --> 00:02:50,300 Square ist eine ziemlich einfache Funktion. 51 00:02:50,300 --> 00:02:54,100 Es ist nur noch 1 Zeile, da alles, was wir tun müssen, ist zu multiplizieren x von selbst aus. 52 00:02:54,100 --> 00:02:59,250 Das Wort Rückkehr gibt den Ausgabewert und löst den Ende der Funktion. 53 00:02:59,250 --> 00:03:03,430 Um den Platz Funktion zu nutzen, müssen wir die entsprechenden Eingänge liefern 54 00:03:03,430 --> 00:03:05,310 und dann fangen die Ausgabe. 55 00:03:05,310 --> 00:03:08,140 Hier sehen Sie ein paar Möglichkeiten, das zu tun. 56 00:03:08,140 --> 00:03:13,600 Wir können in einem rohen int übergeben, wie 6, oder wir können in einer Variablen wie ein weiterzugeben. 57 00:03:13,600 --> 00:03:15,700 Beachten Sie, dass jedes Mal, wenn wir Platz nennen, 58 00:03:15,700 --> 00:03:18,330 erfassen wir die Ausgabe in eine Variable und dann ausdrucken. 59 00:03:18,330 --> 00:03:22,690 Allerdings haben wir nicht den Rückgabewert in einer Variablen speichern und dann ausdrucken. 60 00:03:22,690 --> 00:03:27,090 Wir könnten einfach senden sie direkt an printf wie wir es tun, wenn wir Platz 10, 61 00:03:27,090 --> 00:03:30,580 aber dies bedeutet, dass wir keinen Zugriff auf den Rückgabewert von quadratischen 10 62 00:03:30,580 --> 00:03:32,230 anderswo in dem Code. 63 00:03:32,230 --> 00:03:34,890 Lassen Sie uns an einem anderen einfachen Beispiel. 64 00:03:34,890 --> 00:03:38,750 >> Dieses Mal werden wir 2 Schwimmern zusammen, so dass wir sehen können, was eine Funktion aussieht Fazit 65 00:03:38,750 --> 00:03:41,220 Wenn es hat 2 Eingänge statt nur 1. 66 00:03:41,220 --> 00:03:43,950 Wie Sie sehen können, ist es nicht viel anders. 67 00:03:43,950 --> 00:03:47,330 Alles, was wir tun müssen, ist hinzuzufügen im zweiten Argument, eine float namens b, 68 00:03:47,330 --> 00:03:51,820 die Liste der Argumente mit einem Komma, um es von dem ersten Argument zu trennen, schwimmt ein. 69 00:03:51,820 --> 00:03:55,550 So sind unsere Quadrat und Summenfunktionen recht einfach zu verstehen 70 00:03:55,550 --> 00:03:58,930 weil sie gleichbedeutend mit Funktionen, die Sie haben, bevor in Mathematik Klasse sehen sind. 71 00:03:58,930 --> 00:04:01,610 Lassen Sie uns nun auf eine Funktion, die etwas anders ist zu suchen. 72 00:04:01,610 --> 00:04:04,620 Anstatt einen Wert zurückzugeben, ändert es einen Staat. 73 00:04:04,620 --> 00:04:07,260 Dies wird als eine Nebenwirkung bekannt. 74 00:04:07,260 --> 00:04:10,750 In diesem Programm, das printf_fudd_style Funktion 75 00:04:10,750 --> 00:04:13,410 hat einen Rückgabetyp, dass wir nicht gesehen haben, nichtig. 76 00:04:13,410 --> 00:04:16,730 >> Void ist zu sagen, dass eine Funktion nichts zurück. 77 00:04:16,730 --> 00:04:19,410 Es gibt keine Variablen vom Typ void, 78 00:04:19,410 --> 00:04:22,760 so, wenn Sie versuchen, etwas von einer Funktion wie printf_fudd_style zurückkehren, 79 00:04:22,760 --> 00:04:24,290 Der Compiler wird dich schreien. 80 00:04:24,290 --> 00:04:29,390 Innerhalb printf_fudd_style sehen wir, dass, während die Funktion noch eine Aufgabe, 81 00:04:29,390 --> 00:04:31,890 nämlich dem Einschalten alle Rs Ws, 82 00:04:31,890 --> 00:04:36,380 der Punkt der Funktion ist die Zeichenfolge zu ändern und dann drucken Sie es aus auf dem Bildschirm, 83 00:04:36,380 --> 00:04:39,400 Ändern des Status des Programms anstelle der Rückgabe eines Ergebnisses. 84 00:04:39,400 --> 00:04:43,700 Mit dieser Funktion ist sehr ähnlich wie mit unseren Platz und die Summe Funktionen 85 00:04:43,700 --> 00:04:46,950 außer daß wir nicht speichern das Ergebnis in einer Variablen oder übergeben Sie sie an eine andere Funktion 86 00:04:46,950 --> 00:04:49,520 da kein Ergebnis zu sprechen. 87 00:04:49,520 --> 00:04:53,180 Also, wenn wir kompilieren und ausführen unserem Elmer Fudd Programm 88 00:04:53,180 --> 00:04:56,970 Sie sehen, dass "Du rascally Kaninchen!" wird Recht transformiert 89 00:04:56,970 --> 00:04:58,730 "Du wascally Wabbit!" 90 00:04:58,730 --> 00:05:02,250 >> Schließlich gibt es noch ein weitere Funktion der Rede wert 91 00:05:02,250 --> 00:05:06,810 da Sie habe mit ihm in jedem C Programm, das Sie je geschrieben habe, main. 92 00:05:06,810 --> 00:05:09,450 Main ist eine Funktion wie jeder andere. 93 00:05:09,450 --> 00:05:13,580 Es hat einen Rückgabetyp, einen Namen, eine Liste von Argumenten, und einen Körper. 94 00:05:13,580 --> 00:05:16,110 Der Rückgabetyp der wichtigsten ist immer ein int, 95 00:05:16,110 --> 00:05:19,120 und dies int verwendet, um den Status des Programms zu kommunizieren, wenn sie beendet. 96 00:05:19,120 --> 00:05:23,360 >> Hat es erfolgreich ausgeführt werden, oder hat es vorzeitig zu beenden, weil ein Fehler? 97 00:05:23,360 --> 00:05:26,390 Rückkehr zu Null zeigt eine erfolgreiche Ausführung, 98 00:05:26,390 --> 00:05:29,510 und wieder eine Nicht-Null-Wert zeigt einen Fehler an. 99 00:05:29,510 --> 00:05:31,950 Abhängig von der Art des Programms du schreibst, 100 00:05:31,950 --> 00:05:34,960 wieder verschiedene Codes für verschiedene Fehler kann hilfreich sein 101 00:05:34,960 --> 00:05:37,210 für Menschen, die Ihrem Programm verwenden später. 102 00:05:37,210 --> 00:05:40,220 Mains Argumente sind ein wenig komplizierter. 103 00:05:40,220 --> 00:05:42,150 >> Die Argument-Liste kann entweder leer sein, 104 00:05:42,150 --> 00:05:45,330 denen wir zeigen, indem Lücke zwischen den Klammern 105 00:05:45,330 --> 00:05:50,220 oder die Liste können 2 Argumente: ein int und ein Array von char * s. 106 00:05:50,220 --> 00:05:52,820 Diese werden verwendet, wenn das Programm zu verwenden beabsichtigt 107 00:05:52,820 --> 00:05:56,490 übergebenen Argumente in der Befehlszeile, wenn das Programm aufgerufen wird. 108 00:05:56,490 --> 00:05:59,690 Das Argument int wird üblicherweise als argc, 109 00:05:59,690 --> 00:06:03,300 und es ist gleich der Länge des char * Array, wie argv bekannt. 110 00:06:03,300 --> 00:06:07,080 Argv enthält die Kommandozeilen-Argumente in das Programm übergeben. 111 00:06:07,080 --> 00:06:11,440 In einer weiteren kurzen, werden wir darüber, wie diese Variablen im Detail verwenden sprechen. 112 00:06:11,440 --> 00:06:15,220 Denn jetzt können Sie sich gerne an Haupt in beide Richtungen zu erklären. 113 00:06:15,220 --> 00:06:19,410 I in der Regel wählen, um es schreiben, den kürzeren Weg, ohne Argumente, wenn möglich. 114 00:06:19,410 --> 00:06:22,230 >> Jetzt wissen Sie, wie Sie Funktionen zu schreiben, 115 00:06:22,230 --> 00:06:25,030 Sie sind auf dem besten Weg zur Entwicklung größere und komplexere Programme. 116 00:06:25,030 --> 00:06:29,740 Mein Name ist Nate Hardison. Dies ist CS50.