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 трябва да използвате структура на ключова дума когато ние работим с them-- 7 00:00:19,210 --> 00:00:21,257 структура на кола или структура на студент. 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 файлове, или в Н файл дот 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 или [недоловим] на структура на нещо, си линии може просто да получите наистина, наистина дълго. 41 00:01:56,310 --> 00:01:59,400 И за да можете да използвате, за да дойде typedef с нещо много по-кратък. 42 00:01:59,400 --> 00:02:04,650 >> Така че, ако се определи една кола, както следва, имам моето определение за car-- структура на автомобили, 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 структура на кола като кола долна тон. 46 00:02:15,680 --> 00:02:19,670 И тогава, когато съм направил, че сега всеки време щях да се използва по друг начин структура на 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 структура на автомобили, 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 би могъл да каже, структура на кола MyCar точка и запетая. 64 00:03:13,279 --> 00:03:14,820 Ами аз не трябва да се случва повече. 65 00:03:14,820 --> 00:03:20,265 Сега, аз съм използвал на typedef, I може просто да се каже колата долна тона, 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