1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Takže, pokud jste Viděl naše video na struktury, 3 00:00:07,220 --> 00:00:10,950 již víte, že máme schopnost definovat vlastní datové typy. 4 00:00:10,950 --> 00:00:14,530 Ale pokud jste použili struktury, víš že někdy používání těchto datových typů 5 00:00:14,530 --> 00:00:16,446 může být ve skutečnosti trochu těžkopádný, protože my 6 00:00:16,446 --> 00:00:19,210 muset použít klíčové slovo struct když pracujeme s them-- 7 00:00:19,210 --> 00:00:21,257 struct auta nebo struct studentem. 8 00:00:21,257 --> 00:00:23,090 To je hodně psát pokud chceme jen mít 9 00:00:23,090 --> 00:00:24,830 něco jednoduchého, jako struktura. 10 00:00:24,830 --> 00:00:26,390 Chceme have-- chceme být schopen pracovat s věcmi 11 00:00:26,390 --> 00:00:29,350 trochu zkratka způsob, jako je int nebo char, něco hodně 12 00:00:29,350 --> 00:00:31,240 pohodlnější psaní. 13 00:00:31,240 --> 00:00:33,100 >> Naštěstí je tu způsob, jak to udělat v C, 14 00:00:33,100 --> 00:00:37,150 s něčím nazývá typedef, který je způsob, jak vytvořit zkratku nebo přepsaný 15 00:00:37,150 --> 00:00:38,640 jména pro datové typy. 16 00:00:38,640 --> 00:00:40,720 Můžete přepsat data, typy, které již existují, 17 00:00:40,720 --> 00:00:43,970 nebo můžete psát datové typy své vlastní. 18 00:00:43,970 --> 00:00:46,890 >> První věc, kterou udělat, je vás definovat typ normálním způsobem, 19 00:00:46,890 --> 00:00:52,271 a pak stačí alias to k něčemu else-- typedef staré jméno nové jméno. 20 00:00:52,271 --> 00:00:53,520 Docela jednoduché, ne? 21 00:00:53,520 --> 00:00:56,240 Takže bychom mohli typedef například, již existující data 22 00:00:56,240 --> 00:01:00,266 typ unsigned char jako byte. 23 00:01:00,266 --> 00:01:03,140 A pak, od teď, poté, co jsme vyrobena tento typ definition-- znovu 24 00:01:03,140 --> 00:01:07,570 který je obvykle bude na vrcholu našich tečka souborů C, nebo v H souboru dot 25 00:01:07,570 --> 00:01:10,590 zvlášť, můžeme jen Používejte kousnout všude 26 00:01:10,590 --> 00:01:12,180 bychom použili unsigned char. 27 00:01:12,180 --> 00:01:14,300 To je hodně kratší psát. 28 00:01:14,300 --> 00:01:19,280 >> V knihovně CS50 to, co děláme tohle-- jsme typedef char hvězdu jako řetězec. 29 00:01:19,280 --> 00:01:21,400 Protože jsme abstrahovat pryč myšlenka ukazatelů. 30 00:01:21,400 --> 00:01:25,072 A skutečnost, že řetězec je opravdu ukazatel na první character-- 31 00:01:25,072 --> 00:01:26,780 řada znaků, protože je to jen 32 00:01:26,780 --> 00:01:29,863 tak matoucí, aby si hlavu kolem that-- ale ve skutečnosti je to, že to, co děláme. 33 00:01:29,863 --> 00:01:35,140 A tento řádek kódu skutečně existuje v CS50 dot H typedef char hvězda řetězec, 34 00:01:35,140 --> 00:01:39,021 Jen aby se to o něco méně těžkopádné muset vypořádat s. 35 00:01:39,021 --> 00:01:41,520 Už jste viděli asi Trochu hodnoty zde, 36 00:01:41,520 --> 00:01:44,160 ale typedef se stává velký v kombinaci s konstrukcí, 37 00:01:44,160 --> 00:01:45,780 jak jsem zmínil již dříve. 38 00:01:45,780 --> 00:01:48,550 Konstrukce má název typu dvou slov. 39 00:01:48,550 --> 00:01:52,020 A tak mohou být opravdu otravné vytvářet proměnné tohoto typu, 40 00:01:52,020 --> 00:01:56,310 nebo [neslyšitelné] of struct něco, vaše řádky mohou jen získat opravdu, ale opravdu dlouho. 41 00:01:56,310 --> 00:01:59,400 A tak můžete použít typedef přijít s něčím mnohem kratší. 42 00:01:59,400 --> 00:02:04,650 >> Takže když jsem definovat auto takto, mám moje definice car-- struct auta, 43 00:02:04,650 --> 00:02:07,230 a pak otevřete složenou závorkou, všechny pole mé struktury, 44 00:02:07,230 --> 00:02:11,030 v blízkosti složená závorka, semi-colon-- poté, co jste definovali svůj datový typ, 45 00:02:11,030 --> 00:02:15,680 Můžu typedef struct auto jako auto podtržení t. 46 00:02:15,680 --> 00:02:19,670 A pak, když jsem udělal, že nyní každý Doba bych jinak použity struct 47 00:02:19,670 --> 00:02:22,680 auto, mohu jen použít auto podtržení t. 48 00:02:22,680 --> 00:02:26,480 To je hodně kratší, o způsob, jak vyjádřit tuto myšlenku této struktury 49 00:02:26,480 --> 00:02:28,530 že jsem právě vytvořili. 50 00:02:28,530 --> 00:02:33,620 >> Alternativně, protože struktur jsou tak běžně používané v definice typu, 51 00:02:33,620 --> 00:02:37,980 je tu je-- můžete skutečně definovat zadat mezi začátkem a koncem. 52 00:02:37,980 --> 00:02:42,020 Takže struktura typedef je opět obvykle typedef, staré jméno, nový název, 53 00:02:42,020 --> 00:02:45,360 kde jména jsou již typy, které jste vytvořili. 54 00:02:45,360 --> 00:02:49,620 Ale můžete skutečně definovat strukturu přímo uprostřed typedef 55 00:02:49,620 --> 00:02:51,760 místo toho, aby musel definovat to samostatně, a poté 56 00:02:51,760 --> 00:02:52,990 udělat definice typu to. 57 00:02:52,990 --> 00:02:55,780 A to by vypadat stejně jako tohle-- typedef struct auto, 58 00:02:55,780 --> 00:02:59,957 open složená závorka, všechny vaše pole definice, v blízkosti je složená závorka, auto t. 59 00:02:59,957 --> 00:03:03,290 Takže starý název je všechny ty věci v červená, jste jen definující strukturu 60 00:03:03,290 --> 00:03:05,610 a jmenovat to ve stejnou dobu. 61 00:03:05,610 --> 00:03:07,790 A pak nový název je auto podtržítko t. 62 00:03:07,790 --> 00:03:10,150 A tak pokud bychom začít používat to v kódu, dříve jsem 63 00:03:10,150 --> 00:03:13,279 mohl říct, struct auto MyCar středník. 64 00:03:13,279 --> 00:03:14,820 No já nemám k tomu, že už ne. 65 00:03:14,820 --> 00:03:20,265 Teď, když jsem použil typedef, já stačí říct, auto podtržítko t, MyCar. 66 00:03:20,265 --> 00:03:22,640 To je hodně kratší způsob, to udělat, a ve skutečnosti, to je 67 00:03:22,640 --> 00:03:24,515 Bude to mnohem více výhodné, a to zejména 68 00:03:24,515 --> 00:03:27,730 jak začnete používat struktur mnohem více v kódu. 69 00:03:27,730 --> 00:03:28,810 >> Jsem Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 To je CS50. 71 00:03:30,640 --> 00:03:32,415