1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Takže, ak ste Videl naše video na štruktúry, 3 00:00:07,220 --> 00:00:10,950 už viete, že máme schopnosť definovať vlastné dátové typy. 4 00:00:10,950 --> 00:00:14,530 Ale ak ste použili štruktúry, vieš že niekedy používanie týchto dátových typov 5 00:00:14,530 --> 00:00:16,446 môže byť v skutočnosti trochu ťažkopádny, pretože my 6 00:00:16,446 --> 00:00:19,210 musieť použiť kľúčové slovo struct keď pracujeme s them-- 7 00:00:19,210 --> 00:00:21,257 struct auta alebo struct študentom. 8 00:00:21,257 --> 00:00:23,090 To je veľa písať ak chceme len mať 9 00:00:23,090 --> 00:00:24,830 niečo jednoduchého, ako štruktúra. 10 00:00:24,830 --> 00:00:26,390 Chceme have-- chceme byť schopný pracovať s vecami 11 00:00:26,390 --> 00:00:29,350 trochu skratka spôsob, ako je int alebo char, niečo veľa 12 00:00:29,350 --> 00:00:31,240 pohodlnejšie písanie. 13 00:00:31,240 --> 00:00:33,100 >> Našťastie je tu spôsob, ako to urobiť v C, 14 00:00:33,100 --> 00:00:37,150 s niečím nazýva typedef, ktorý je spôsob, ako vytvoriť skratku alebo prepísaný 15 00:00:37,150 --> 00:00:38,640 mená pre dátové typy. 16 00:00:38,640 --> 00:00:40,720 Môžete prepísať dáta, typy, ktoré už existujú, 17 00:00:40,720 --> 00:00:43,970 alebo môžete písať dátové typy svoje vlastné. 18 00:00:43,970 --> 00:00:46,890 >> Prvá vec, ktorú urobiť, je vás definovať typ normálnym spôsobom, 19 00:00:46,890 --> 00:00:52,271 a potom stačí alias to k niečomu else-- typedef staré meno nové meno. 20 00:00:52,271 --> 00:00:53,520 Celkom jednoduché, nie? 21 00:00:53,520 --> 00:00:56,240 Takže by sme mohli typedef napríklad, už existujúce dáta 22 00:00:56,240 --> 00:01:00,266 typ unsigned char ako byte. 23 00:01:00,266 --> 00:01:03,140 A potom, od teraz, potom, čo sme vyrobená tento typ definition-- znova 24 00:01:03,140 --> 00:01:07,570 ktorý je zvyčajne bude na vrchole našich bodka súborov C, alebo v H súboru dot 25 00:01:07,570 --> 00:01:10,590 zvlášť, môžeme len Používajte uhryznúť všade 26 00:01:10,590 --> 00:01:12,180 by sme použili unsigned char. 27 00:01:12,180 --> 00:01:14,300 To je veľa kratšie písať. 28 00:01:14,300 --> 00:01:19,280 >> V knižnici CS50 to, čo robíme tohle-- sme typedef char hviezdu ako reťazec. 29 00:01:19,280 --> 00:01:21,400 Pretože sme abstrahovať preč myšlienka ukazovateľov. 30 00:01:21,400 --> 00:01:25,072 A skutočnosť, že reťazec je naozaj ukazovateľ na prvý character-- 31 00:01:25,072 --> 00:01:26,780 rad znakov, pretože je to len 32 00:01:26,780 --> 00:01:29,863 tak mätúce, aby si hlavu okolo that-- ale v skutočnosti je to, že to, čo robíme. 33 00:01:29,863 --> 00:01:35,140 A tento riadok kódu skutočne existuje v CS50 dot H typedef char hviezda reťazec, 34 00:01:35,140 --> 00:01:39,021 Len aby sa to o niečo menej ťažkopádne musieť vysporiadať s. 35 00:01:39,021 --> 00:01:41,520 Už ste videli asi Trochu hodnoty tu, 36 00:01:41,520 --> 00:01:44,160 ale typedef sa stáva veľký v kombinácii s konštrukciou, 37 00:01:44,160 --> 00:01:45,780 ako som spomenul už skôr. 38 00:01:45,780 --> 00:01:48,550 Konštrukcia má názov typu dvoch slov. 39 00:01:48,550 --> 00:01:52,020 A tak môžu byť naozaj otravné vytvárať premenné tohto typu, 40 00:01:52,020 --> 00:01:56,310 alebo [nepočuteľné] of struct niečo, vaše riadky môžu len získať naozaj, ale naozaj dlho. 41 00:01:56,310 --> 00:01:59,400 A tak môžete použiť typedef prísť s niečím oveľa kratšie. 42 00:01:59,400 --> 00:02:04,650 >> Takže keď som definovať auto takto, mám moja definícia car-- struct autá, 43 00:02:04,650 --> 00:02:07,230 a potom otvorte zloženú zátvorkou, všetky pole mojej štruktúry, 44 00:02:07,230 --> 00:02:11,030 v blízkosti zložená zátvorka, semi-colon-- potom, čo ste definovali svoj dátový typ, 45 00:02:11,030 --> 00:02:15,680 Môžem typedef struct auto ako auto podčiarknutie t. 46 00:02:15,680 --> 00:02:19,670 A potom, keď som urobil, že teraz každý Doba by som inak použité struct 47 00:02:19,670 --> 00:02:22,680 auto, môžem len použiť auto podčiarknutie t. 48 00:02:22,680 --> 00:02:26,480 To je veľa kratšia, o spôsob, ako vyjadriť túto myšlienku tejto štruktúry 49 00:02:26,480 --> 00:02:28,530 že som práve vytvorili. 50 00:02:28,530 --> 00:02:33,620 >> Alternatívne, pretože štruktúr sú tak bežne používané v definície typu, 51 00:02:33,620 --> 00:02:37,980 je tu je-- môžete skutočne definovať zadať medzi začiatkom a koncom. 52 00:02:37,980 --> 00:02:42,020 Takže štruktúra typedef je opäť obvykle typedef, staré meno, nový názov, 53 00:02:42,020 --> 00:02:45,360 kde mená sú už typy, ktoré ste vytvorili. 54 00:02:45,360 --> 00:02:49,620 Ale môžete skutočne definovať štruktúru priamo uprostred typedef 55 00:02:49,620 --> 00:02:51,760 namiesto toho, aby musel definovať to samostatne, a potom 56 00:02:51,760 --> 00:02:52,990 urobiť definície typu to. 57 00:02:52,990 --> 00:02:55,780 A to by vyzerať rovnako ako tohle-- typedef struct auto, 58 00:02:55,780 --> 00:02:59,957 open zložená zátvorka, všetky vaše polia definície, v jeho blízkosti je zložená zátvorka, auto t. 59 00:02:59,957 --> 00:03:03,290 Takže starý názov je všetky tie veci v červená, ste len definujúce štruktúru 60 00:03:03,290 --> 00:03:05,610 a menovať to v rovnakom čase. 61 00:03:05,610 --> 00:03:07,790 A potom nový názov je auto podčiarknik t. 62 00:03:07,790 --> 00:03:10,150 A tak ak by sme začať používať to v kóde, skôr som 63 00:03:10,150 --> 00:03:13,279 mohol povedať, struct auto MyCar bodkočiarka. 64 00:03:13,279 --> 00:03:14,820 No ja nemám k tomu, že už nie. 65 00:03:14,820 --> 00:03:20,265 Teraz, keď som použil typedef, ja stačí povedať, auto podčiarknik t, MyCar. 66 00:03:20,265 --> 00:03:22,640 To je veľa kratšie spôsob, to urobiť, a v skutočnosti, to je 67 00:03:22,640 --> 00:03:24,515 Bude to oveľa viac výhodné, a to najmä 68 00:03:24,515 --> 00:03:27,730 ako začnete používať štruktúr oveľa viac v kóde. 69 00:03:27,730 --> 00:03:28,810 >> Som Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 To je CS50. 71 00:03:30,640 --> 00:03:32,415