Дъг LLOYD: Така че, ако сте виждал нашия видео на структури,
вие вече знаете, че имаме способността да се определят нашите собствени типове данни.
Но ако сте използвали структури, нали знаеш че понякога се използва тези типове данни
всъщност може да бъде малко по- тромави защото
трябва да използвате структура на ключова дума когато ние работим с them--
структура на кола или структура на студент.
Това е много да се объркат ако просто искате да имате
нещо по-просто, като структура.
Искаме да have-- ние искаме да да бъде в състояние да работи с неща
малко повече стенографски начин, като INT или Чар, нещо много
по-удобно да пишете.
>> За щастие, има начин да направите това в C,
с нещо, наречено typedef, което е начин за създаване на стенограмите или пренаписва
имена за типове данни.
Можете да пренапише данни видове, които вече съществуват,
или можете да напишете типове данни на вашия собствен.
>> Първото нещо, което искаш да е дефинирате типа по нормалния начин,
и след това просто го Псевдоним на нещо else-- typedef старото име ново име.
Доста проста, нали?
Така че можем да typedef например, на вече съществуващите данни
вид на грозен Чар като байт.
И след това, от сега нататък, след като сме прави този тип definition-- отново,
което обикновено се случва, за да бъде на върха от нашите дот C файлове, или в Н файл дот
Просто отделно, ние можем ползване хапят навсякъде
щяхме да използва грозен Чар.
Това е много по-кратък, за да объркат.
>> В библиотеката CS50, ние правим this-- ние typedef Чар звезда като низ.
Защото ние абстрахира далеч от идеята на указатели.
А фактът, че низ е наистина указател към първия character--
масив от символи, защото това е просто
толкова объркващо, за да получите главата си около that-- но в действителност това е, което ние правим.
И този ред код действително съществува Чар в низ звезда CS50 точка H typedef,
само за да се, че малко по-малко тромаво да се наложи да се справят с.
Вече сте виждали вероятно малко от стойността тук,
но typedef става страхотно когато се комбинира със структури,
както споменах по-рано.
Структури имат име тип две думи.
И така, те могат да бъдат много досадно да се създаде променливи от този тип,
или [недоловим] на структура на нещо, си линии може просто да получите наистина, наистина дълго.
И за да можете да използвате, за да дойде typedef с нещо много по-кратък.
>> Така че, ако се определи една кола, както следва, имам моето определение за car-- структура на автомобили,
и след това отворете фигурна скоба, всички сферите на моята структура,
близо фигурна скоба, полу-colon-- след като съм определено ми тип данни,
Мога да typedef структура на кола като кола долна тон.
И тогава, когато съм направил, че сега всеки време щях да се използва по друг начин структура на
кола, аз може просто да използвате колата долна тон.
Това е много по-кратък от един начин да се изрази тази идея на тази структура
че аз току-що създадохте.
>> Алтернативно, защото структури са толкова често използвани в typedef,
има A-- всъщност можете да дефинирате въведете между началото и края.
Така структура typedef отново Обикновено typedef, старото име, ново име,
когато имената са вече видове, които сте създали.
Но всъщност може да определи структурата точно в средата на typedef
вместо да се определи тя отделно и след това
направя typedef от него.
И това щеше да изглежда точно като this-- typedef структура на автомобили,
отворена фигурна скоба, всички от вашата област дефиниции, в близост фигурна скоба, автомобили гр.
Така че старото име е всички тези неща в червен, ти си просто определяне на структурата
и именуване в същото време.
И тогава новото име е колата долна тон.
И така, ако започнем да използваме това в кода, преди това съм
би могъл да каже, структура на кола MyCar точка и запетая.
Ами аз не трябва да се случва повече.
Сега, аз съм използвал на typedef, I може просто да се каже колата долна тона, MyCar.
Това е много по-кратък от един начин да го направя, а в действителност, това е
щеше да бъде много по- удобно, особено
като започнете да използвате структури много повече в кода си.
>> Аз съм Дъг Лойд.
Това е CS50.