1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 Даг LLOYD: Значи, ако сте види нашата видео на структури, 3 00:00:07,220 --> 00:00:10,950 веќе знаете дека имаме способноста да се дефинираат нашите сопствени типови на податоци. 4 00:00:10,950 --> 00:00:14,530 Но, ако сте користеле структури, знаете дека понекогаш со користење на овие типови на податоци 5 00:00:14,530 --> 00:00:16,446 всушност, може да биде малку тежок, затоа што 6 00:00:16,446 --> 00:00:19,210 мора да се користи на struct клучен збор кога ние работиме со them-- 7 00:00:19,210 --> 00:00:21,257 struct автомобил или struct студент. 8 00:00:21,257 --> 00:00:23,090 Тоа е многу да напишеш ако ние само сакаат да имаат 9 00:00:23,090 --> 00:00:24,830 нешто едноставно, како структура. 10 00:00:24,830 --> 00:00:26,390 Ние сакаме да се have-- сакаме да да биде во можност да работат со работите 11 00:00:26,390 --> 00:00:29,350 малку повеќе стенографија начин, како int или знак, нешто многу 12 00:00:29,350 --> 00:00:31,240 поудобно да ги напишете. 13 00:00:31,240 --> 00:00:33,100 >> За среќа, постои начин да го направите тоа во C, 14 00:00:33,100 --> 00:00:37,150 со нешто што се нарекува typedef, што е начин да се создаде кратенка или препишува и повторно 15 00:00:37,150 --> 00:00:38,640 имиња за типови на податоци. 16 00:00:38,640 --> 00:00:40,720 Можете да ја преработи на податоци видови кои веќе постојат, 17 00:00:40,720 --> 00:00:43,970 или можете да го напишете типови на податоци од вашите сопствени. 18 00:00:43,970 --> 00:00:46,890 >> Првото нешто што го правите вие ​​е се дефинира видот на нормален начин, 19 00:00:46,890 --> 00:00:52,271 и можеш само да го алијас за нешто else-- typedef старото име ново име. 20 00:00:52,271 --> 00:00:53,520 Прилично јасна, така? 21 00:00:53,520 --> 00:00:56,240 За да можеме да typedef на пример, веќе постоечките податоци 22 00:00:56,240 --> 00:01:00,266 тип на непотпишана знак како бајт. 23 00:01:00,266 --> 00:01:03,140 И тогаш, од сега па натаму, откако ќе ја направи овој вид definition-- повторно, 24 00:01:03,140 --> 00:01:07,570 што обично се случува да се биде на врвот на нашата точка C датотеки, или во H датотека точка 25 00:01:07,570 --> 00:01:10,590 само одделно, може да се користете залак насекаде 26 00:01:10,590 --> 00:01:12,180 ние би го користеле непотпишана знак. 27 00:01:12,180 --> 00:01:14,300 Тоа е многу пократко да напишеш. 28 00:01:14,300 --> 00:01:19,280 >> Во CS50 библиотека, ние this-- направи ние typedef знак ѕвезда како стринг. 29 00:01:19,280 --> 00:01:21,400 Бидејќи ние апстрахирани далеку идејата за покажувачи. 30 00:01:21,400 --> 00:01:25,072 Како и фактот дека серијата е навистина покажувач на првата character-- 31 00:01:25,072 --> 00:01:26,780 низа од карактери, бидејќи тоа е само 32 00:01:26,780 --> 00:01:29,863 толку збунувачки да добиете вашата глава околу that-- но во суштина тоа е она што го правиме. 33 00:01:29,863 --> 00:01:35,140 И оваа линија код всушност постои во знак низа ѕвезда CS50 точка H typedef, 34 00:01:35,140 --> 00:01:39,021 само да се направи тоа малку помалку незгодни да се има да се справи со. 35 00:01:39,021 --> 00:01:41,520 Веќе сте виделе веројатно малку од вредноста тука, 36 00:01:41,520 --> 00:01:44,160 но typedef станува голема кога се комбинираат со структури, 37 00:01:44,160 --> 00:01:45,780 како што се алудира погоре. 38 00:01:45,780 --> 00:01:48,550 Структури имаат име на тип два збора. 39 00:01:48,550 --> 00:01:52,020 И така тие можат да бидат навистина досадно да се создаде променливи од тој тип, 40 00:01:52,020 --> 00:01:56,310 или [Беззвучен] на struct нешто, вашиот линии само може да добиете многу, многу долго. 41 00:01:56,310 --> 00:01:59,400 И за да можете да ги користите за да се дојде typedef со нешто многу пократок. 42 00:01:59,400 --> 00:02:04,650 >> Значи, ако јас се дефинира автомобил како што следува, јас имам мојата дефиниција за car-- struct автомобил, 43 00:02:04,650 --> 00:02:07,230 и потоа отворете кадрава голема заграда, сите областа на мојата структура, 44 00:02:07,230 --> 00:02:11,030 блиску кадрава голема заграда, полу-colon-- јас откако ќе се дефинира мојот тип на податоци, 45 00:02:11,030 --> 00:02:15,680 Можам да typedef struct автомобил како автомобил црта т. 46 00:02:15,680 --> 00:02:19,670 И тогаш, кога јас го направиле тоа, сега секој време јас ќе го користат за друга намена struct 47 00:02:19,670 --> 00:02:22,680 автомобил, јас само може да се користи автомобил црта т. 48 00:02:22,680 --> 00:02:26,480 Тоа е многу пократок од еден начин да се изразат оваа идеја на оваа структура 49 00:02:26,480 --> 00:02:28,530 дека јас само замислен. 50 00:02:28,530 --> 00:02:33,620 >> Алтернативно, затоа што структурите се толку често се користат во typedef, 51 00:02:33,620 --> 00:02:37,980 има a-- всушност може да го дефинирате напишете меѓу почетокот и крајот. 52 00:02:37,980 --> 00:02:42,020 Па структура typedef повторно е обично typedef, старото име, ново име, 53 00:02:42,020 --> 00:02:45,360 каде што имињата се веќе типови дека сте создадени. 54 00:02:45,360 --> 00:02:49,620 Но, што всушност може да се дефинира структурата право во средината на typedef 55 00:02:49,620 --> 00:02:51,760 наместо да се дефинираат тоа одделно, а потоа 56 00:02:51,760 --> 00:02:52,990 направи typedef од неа. 57 00:02:52,990 --> 00:02:55,780 И дека ќе изгледаат исто како и this-- typedef struct автомобил, 58 00:02:55,780 --> 00:02:59,957 отворен кадрава голема заграда, сите на вашата област дефиниции, во близина кадрава голема заграда, автомобил т. 59 00:02:59,957 --> 00:03:03,290 Па старото име е на сите дека работи во црвена, ти си само дефинирање на структурата 60 00:03:03,290 --> 00:03:05,610 и тоа именување во исто време. 61 00:03:05,610 --> 00:03:07,790 А потоа и на новото име е автомобил црта т. 62 00:03:07,790 --> 00:03:10,150 И така, ако почнеме да ги користат ова во кодот, јас претходно 63 00:03:10,150 --> 00:03:13,279 може да се рече, struct автомобил mycar точка-запирка. 64 00:03:13,279 --> 00:03:14,820 Па, јас не треба да се направи тоа повеќе. 65 00:03:14,820 --> 00:03:20,265 Сега што сум ги користел typedef, јас може само да се каже автомобил црта т, mycar. 66 00:03:20,265 --> 00:03:22,640 Тоа е многу пократок од еден пат да го направи тоа, а всушност, тоа е 67 00:03:22,640 --> 00:03:24,515 ќе биде многу повеќе удобен, особено 68 00:03:24,515 --> 00:03:27,730 како што ќе почнете да го користите структури многу повеќе во вашиот код. 69 00:03:27,730 --> 00:03:28,810 >> Јас сум Даг Лојд. 70 00:03:28,810 --> 00:03:30,640 Ова е CS50. 71 00:03:30,640 --> 00:03:32,415