Даг LLOYD: Значи, ако сте види нашата видео на структури,
веќе знаете дека имаме способноста да се дефинираат нашите сопствени типови на податоци.
Но, ако сте користеле структури, знаете дека понекогаш со користење на овие типови на податоци
всушност, може да биде малку тежок, затоа што
мора да се користи на struct клучен збор кога ние работиме со them--
struct автомобил или struct студент.
Тоа е многу да напишеш ако ние само сакаат да имаат
нешто едноставно, како структура.
Ние сакаме да се have-- сакаме да да биде во можност да работат со работите
малку повеќе стенографија начин, како int или знак, нешто многу
поудобно да ги напишете.
>> За среќа, постои начин да го направите тоа во C,
со нешто што се нарекува typedef, што е начин да се создаде кратенка или препишува и повторно
имиња за типови на податоци.
Можете да ја преработи на податоци видови кои веќе постојат,
или можете да го напишете типови на податоци од вашите сопствени.
>> Првото нешто што го правите вие ​​е се дефинира видот на нормален начин,
и можеш само да го алијас за нешто else-- typedef старото име ново име.
Прилично јасна, така?
За да можеме да typedef на пример, веќе постоечките податоци
тип на непотпишана знак како бајт.
И тогаш, од сега па натаму, откако ќе ја направи овој вид definition-- повторно,
што обично се случува да се биде на врвот на нашата точка C датотеки, или во H датотека точка
само одделно, може да се користете залак насекаде
ние би го користеле непотпишана знак.
Тоа е многу пократко да напишеш.
>> Во CS50 библиотека, ние this-- направи ние typedef знак ѕвезда како стринг.
Бидејќи ние апстрахирани далеку идејата за покажувачи.
Како и фактот дека серијата е навистина покажувач на првата character--
низа од карактери, бидејќи тоа е само
толку збунувачки да добиете вашата глава околу that-- но во суштина тоа е она што го правиме.
И оваа линија код всушност постои во знак низа ѕвезда CS50 точка H typedef,
само да се направи тоа малку помалку незгодни да се има да се справи со.
Веќе сте виделе веројатно малку од вредноста тука,
но typedef станува голема кога се комбинираат со структури,
како што се алудира погоре.
Структури имаат име на тип два збора.
И така тие можат да бидат навистина досадно да се создаде променливи од тој тип,
или [Беззвучен] на struct нешто, вашиот линии само може да добиете многу, многу долго.
И за да можете да ги користите за да се дојде typedef со нешто многу пократок.
>> Значи, ако јас се дефинира автомобил како што следува, јас имам мојата дефиниција за car-- struct автомобил,
и потоа отворете кадрава голема заграда, сите областа на мојата структура,
блиску кадрава голема заграда, полу-colon-- јас откако ќе се дефинира мојот тип на податоци,
Можам да typedef struct автомобил како автомобил црта т.
И тогаш, кога јас го направиле тоа, сега секој време јас ќе го користат за друга намена struct
автомобил, јас само може да се користи автомобил црта т.
Тоа е многу пократок од еден начин да се изразат оваа идеја на оваа структура
дека јас само замислен.
>> Алтернативно, затоа што структурите се толку често се користат во typedef,
има a-- всушност може да го дефинирате напишете меѓу почетокот и крајот.
Па структура typedef повторно е обично typedef, старото име, ново име,
каде што имињата се веќе типови дека сте создадени.
Но, што всушност може да се дефинира структурата право во средината на typedef
наместо да се дефинираат тоа одделно, а потоа
направи typedef од неа.
И дека ќе изгледаат исто како и this-- typedef struct автомобил,
отворен кадрава голема заграда, сите на вашата област дефиниции, во близина кадрава голема заграда, автомобил т.
Па старото име е на сите дека работи во црвена, ти си само дефинирање на структурата
и тоа именување во исто време.
А потоа и на новото име е автомобил црта т.
И така, ако почнеме да ги користат ова во кодот, јас претходно
може да се рече, struct автомобил mycar точка-запирка.
Па, јас не треба да се направи тоа повеќе.
Сега што сум ги користел typedef, јас може само да се каже автомобил црта т, mycar.
Тоа е многу пократок од еден пат да го направи тоа, а всушност, тоа е
ќе биде многу повеќе удобен, особено
како што ќе почнете да го користите структури многу повеќе во вашиот код.
>> Јас сум Даг Лојд.
Ова е CS50.