1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Also, wenn Sie haben unsere Video-on-Strukturen zu sehen, 3 00:00:07,220 --> 00:00:10,950 Sie bereits wissen, dass wir die Fähigkeit, unsere eigenen Datentypen definieren. 4 00:00:10,950 --> 00:00:14,530 Aber wenn Sie gebrauchte Strukturen haben, wissen Sie dass manchmal unter Verwendung dieser Datentypen 5 00:00:14,530 --> 00:00:16,446 kann tatsächlich ein wenig sein umständlich, weil wir 6 00:00:16,446 --> 00:00:19,210 müssen das Schlüsselwort struct verwenden wenn wir mit them-- Arbeits 7 00:00:19,210 --> 00:00:21,257 struct Auto oder struct Student. 8 00:00:21,257 --> 00:00:23,090 Das ist eine Menge zu geben wenn wir wollen, nur um 9 00:00:23,090 --> 00:00:24,830 etwas einfach, wie eine Struktur. 10 00:00:24,830 --> 00:00:26,390 Wir wollen have-- wir wollen in der Lage, mit den Dingen zu arbeiten 11 00:00:26,390 --> 00:00:29,350 ein wenig mehr Kurzform, wie int oder char, etwas viel 12 00:00:29,350 --> 00:00:31,240 bequemer zu geben. 13 00:00:31,240 --> 00:00:33,100 >> Glücklicherweise gibt es eine Möglichkeit, dies zu tun in C, 14 00:00:33,100 --> 00:00:37,150 mit etwas typedef genannt, das ist ein Weg, um Kurzschrift zu erstellen oder neu geschrieben 15 00:00:37,150 --> 00:00:38,640 Namen für Datentypen. 16 00:00:38,640 --> 00:00:40,720 Sie können die Daten neu zu schreiben Typen, die bereits vorhanden sind, 17 00:00:40,720 --> 00:00:43,970 oder Sie können Datentypen Ihrer eigenen zu schreiben. 18 00:00:43,970 --> 00:00:46,890 >> Das erste, was Sie tun, ist Sie definieren eine Art in der üblichen Weise, 19 00:00:46,890 --> 00:00:52,271 und dann müssen Sie nur Alias ​​es um etwas else-- typedef alten Namen neue Namen. 20 00:00:52,271 --> 00:00:53,520 Ziemlich einfach, nicht wahr? 21 00:00:53,520 --> 00:00:56,240 So haben wir zum Beispiel typedef könnte, den bereits vorhandenen Daten 22 00:00:56,240 --> 00:01:00,266 Art von unsigned char als Byte. 23 00:01:00,266 --> 00:01:03,140 Und dann, von nun an, nachdem wir machte diese Art definition-- wieder, 24 00:01:03,140 --> 00:01:07,570 die in der Regel gehen, um an der Spitze zu sein unserer dot C-Dateien oder in einem Punkt H-Datei 25 00:01:07,570 --> 00:01:10,590 nur getrennt, können wir benutzen überall beißen 26 00:01:10,590 --> 00:01:12,180 wir würden unsigned char benutzt haben. 27 00:01:12,180 --> 00:01:14,300 Das ist viel kürzer zu geben. 28 00:01:14,300 --> 00:01:19,280 >> In CS50 Bibliothek, this-- tun wir wir typedef char Stern als String. 29 00:01:19,280 --> 00:01:21,400 Weil wir abstrahiert entfernt die Idee von Zeigern. 30 00:01:21,400 --> 00:01:25,072 Und die Tatsache, dass ein String ist wirklich ein Zeiger zu dem ersten character-- 31 00:01:25,072 --> 00:01:26,780 ein Feld von Zeichen, weil es einfach 32 00:01:26,780 --> 00:01:29,863 so verwirrend, um den Kopf herum zu erhalten dass-- aber in der Tat, das, was wir tun ist. 33 00:01:29,863 --> 00:01:35,140 Und tatsächlich diese Codezeile vorhanden ist in CS50 dot H typedef char Sterne-string, 34 00:01:35,140 --> 00:01:39,021 nur, dass ein bisschen weniger zu machen mühsam zu bewältigen haben. 35 00:01:39,021 --> 00:01:41,520 Schon haben Sie wahrscheinlich eine gesehen haben wenig von dem Wert hier, 36 00:01:41,520 --> 00:01:44,160 aber typedef groß wird wenn sie mit Strukturen kombiniert, 37 00:01:44,160 --> 00:01:45,780 wie ich spielte auf früher. 38 00:01:45,780 --> 00:01:48,550 Strukturen eine Zwei-Wort-Typnamen. 39 00:01:48,550 --> 00:01:52,020 Und so sie wirklich lästig sein kann um Variablen dieses Typs zu schaffen, 40 00:01:52,020 --> 00:01:56,310 oder [unverständlich] der Struktur etwas, Ihrem Linien können nur wirklich, wirklich lange. 41 00:01:56,310 --> 00:01:59,400 Und so können Sie typedef verwenden zu kommen mit etwas viel kürzer. 42 00:01:59,400 --> 00:02:04,650 >> Also, wenn ich definieren, ein Auto wie folgt, habe ich meine Definition eines car-- struct Auto, 43 00:02:04,650 --> 00:02:07,230 und öffnen Sie dann geschweifte Klammer, die alle die Felder meiner Struktur, 44 00:02:07,230 --> 00:02:11,030 close geschweifte Klammer, halb colon-- nachdem ich meine Datentyp definiert, 45 00:02:11,030 --> 00:02:15,680 Ich kann struct typedef Auto als Autostrich t. 46 00:02:15,680 --> 00:02:19,670 Und dann, wenn ich, dass jetzt jedes getan Zeit, die ich sonst verwendet haben struct 47 00:02:19,670 --> 00:02:22,680 Auto, kann ich nur Autostrich t. 48 00:02:22,680 --> 00:02:26,480 Das ist viel kürzer ist eine Möglichkeit, Ausdruck dieser Idee dieser Struktur 49 00:02:26,480 --> 00:02:28,530 dass ich gerade erstellt haben. 50 00:02:28,530 --> 00:02:33,620 >> Alternativ, weil Strukturen sind so häufig in typedef verwendet, 51 00:02:33,620 --> 00:02:37,980 es gibt a-- Sie tatsächlich definieren geben zwischen dem Beginn und dem Ende. 52 00:02:37,980 --> 00:02:42,020 Also die typedef Struktur wieder Regel typedef, alter Name, neuer Name, 53 00:02:42,020 --> 00:02:45,360 wo die Namen bereits Typen, die Sie erstellt haben. 54 00:02:45,360 --> 00:02:49,620 Aber man kann tatsächlich definieren eine Struktur direkt in der Mitte des typedef 55 00:02:49,620 --> 00:02:51,760 anstatt zu definieren, separat und dann 56 00:02:51,760 --> 00:02:52,990 machen einen typedef davon. 57 00:02:52,990 --> 00:02:55,780 Und das wäre nur aussehen this-- typedef struct Auto, 58 00:02:55,780 --> 00:02:59,957 offene geschweifte Klammer, alle Ihre Feld Definitionen, in der Nähe geschweifte Klammer, Auto t. 59 00:02:59,957 --> 00:03:03,290 Also der alte Name ist all das Zeug in die rot, du bist nur Festlegung der Struktur 60 00:03:03,290 --> 00:03:05,610 und nannte sie zur gleichen Zeit. 61 00:03:05,610 --> 00:03:07,790 Und dann der neue Name ist Autostrich t. 62 00:03:07,790 --> 00:03:10,150 Und so, wenn wir beginnen zu bedienen dies in Code, der zuvor I 63 00:03:10,150 --> 00:03:13,279 gesagt haben könnte, struct Auto mycar Semikolon. 64 00:03:13,279 --> 00:03:14,820 Nun, ich weiß nicht mehr tun. 65 00:03:14,820 --> 00:03:20,265 Nun, da ich das typedef verwendet, I kann nur sagen Autostrich t, ​​mycar. 66 00:03:20,265 --> 00:03:22,640 Das ist viel kürzer der Weise es zu tun, und in der Tat, es ist 67 00:03:22,640 --> 00:03:24,515 gehen, um noch viel mehr sein, praktisch, vor allem 68 00:03:24,515 --> 00:03:27,730 wie Sie, um Strukturen zu verwenden beginnen viel mehr in Ihrem Code. 69 00:03:27,730 --> 00:03:28,810 >> Ich bin Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Dies ist CS50. 71 00:03:30,640 --> 00:03:32,415