DOUG LLOYD: Deci, dacă ați vazut videoclipul nostru pe structuri,
știți deja că avem capacitatea de a defini noastre tipuri de date proprii.
Dar dacă ai structuri utilizate, știi că, uneori, utilizarea acestor tipuri de date
poate fi de fapt un pic greoaie pentru că am
trebuie să utilizeze cuvântul cheie struct când lucrăm cu them--
masina struct sau student struct.
Asta e mult de tip dacă vrem doar să aibă
ceva simplu, ca o structură.
Vrem să have-- vrem să fie capabil să lucreze cu lucruri
un pic mai mult stenografie, cum ar fi Int sau char, ceva o mulțime
mai convenabil de tip.
>> Din fericire, există un mod de a face acest lucru în C,
cu ceva numit typedef, care este o modalitate de a crea stenografie sau rescrise
nume pentru tipurile de date.
Puteți rescrie date tipuri care există deja,
sau puteți scrie tipuri de date proprii.
>> Primul lucru pe care îl faci este tine defini un tip de în mod normal,
și apoi doar alias la ceva else-- typedef nume vechi nume nou.
Destul de simplu, nu?
Deci, am putea typedef de exemplu, datele deja existente
tip de unsigned char ca byte.
Și apoi, de acum înainte, după ce ne-am a făcut acest tip definition-- din nou,
care este, de obicei va fi la partea de sus de dot dosarele noastre C, sau într-un fișier H punct
separat, putem doar folosesc musca de pretutindeni
ne-ar fi folosit char nesemnate.
Asta e mult mai scurtă de tip.
>> In biblioteca lui CS50, facem asta: am typedef char stele ca șir.
Pentru că noi captate departe ideea de indicii.
Iar faptul că un șir este într-adevăr un pointer la primul character--
o serie de caractere, pentru că e doar
atât de confuz pentru a obține în jurul valorii de cap that-- dar, de fapt asta e ceea ce facem.
Și această linie de cod, de fapt există în șir stele char CS50 punct H typedef,
doar pentru a face ca un pic mai puțin greoaie de a avea de a face cu.
Deja le-ați văzut, probabil, o pic din valoarea aici,
dar typedef devine mare atunci când sunt combinate cu structuri,
așa cum am făcut aluzie la mai devreme.
Structuri au un nume de tip două cuvânt.
Și astfel încât să poată fi foarte enervant pentru a crea variabilele de acest tip,
sau [abia auzit] de ceva struct, dvs. Liniile pot obține doar foarte, foarte mult timp.
Și astfel încât să puteți folosi typedef pentru a veni cu ceva mult mai scurtă.
>> Deci, dacă am defini o mașină, după cum urmează, am definiția mea de o masina struct car--,
și apoi deschideți bretele buclat, toate domeniile de structura mea,
aproape bretele buclat, semi-colon-- după ce am definit genul meu de date,
Pot typedef struct masina ca subliniere auto T.
Și apoi, când am făcut asta, acum fiecare struct timp mi-ar fi folosit în caz contrar
masina, pot folosi doar mașina subliniere T.
Aceasta este o mult mai scurtă de un mod de a exprima această idee a acestei structuri
care tocmai am creat-o.
>> Alternativ, deoarece structurile sunt atât de frecvent utilizate în typedef,
e un-- Puteți defini, de fapt, tastați în între începutul și sfârșitul.
Deci structura typedef este din nou de obicei typedef, numele vechi, nume noi,
în cazul în care numele sunt deja tipuri care le-ați creat.
Dar puteți defini de fapt o structură chiar în mijlocul typedef
în loc de a trebui să definească l separat, și apoi
face un typedef de ea.
Și că ar arăta la fel ca astea-- typedef struct masina,
bretele buclat deschis, toate de domeniul tau definiții, aproape bretele ondulat, masina T.
Deci vechiul nume este tot ceea ce lucruri din roșu, esti doar definirea structurii
și numindu-l în același timp.
Și apoi noul nume este subliniere masina T.
Și așa, dacă vom începe să utilizeze acest cod în, anterior am
ar fi putut spune, struct masina MyCar semi-colon.
Ei bine, nu mai trebuie să faci asta.
Acum că am folosit typedef, am poate spune doar subliniere masina t, MyCar.
Aceasta este o mult mai scurtă de un mod a face acest lucru, și, de fapt, este
va fi mult mai convenabil, în special
cum de a începe să utilizați structuri mult mai mult în cod.
>> Sunt Doug Lloyd.
Acest lucru este CS50.