DOUG LLOYD: Do se vi havas vidis nian videon sur strukturoj,
vi jam scias, ke ni havas la kapablo difini nian propran datumtipoj.
Sed se vi uzis strukturoj, komprenu ke kelkfoje uzas tiuj datumtipoj
povas efektive esti iom maloportuna ĉar ni
devas uzi la struct ŝlosilvorto kiam ni laboras kun them--
struct aŭto aŭ struct studento.
Tio estas multe tajpi se ni nur volas havi
ion simplan, kiel strukturo.
Ni volas have-- ni volas povos labori kun aĵoj
iom pli rapida maniero, kiel int aŭ char, ion multe
pli konvena por tajpi.
>> Feliĉe, ekzistas maniero por fari tion en C,
kun iu nomita typedef, kiu estas manieron krei stenografio aŭ reskribita
nomoj por datumtipoj.
Vi povas reverki datumoj tipoj kiuj jam ekzistas,
aux vi povas skribi datumtipoj de via propra.
>> La unua afero kiun vi faras estas vi difini tipon en la normala maniero,
kaj tiam vi simple alias ĝin al ion else-- typedef malnova nomo nova nomo.
Sufiĉe simpla, ĉu ne?
Do ni povus typedef ekzemple, la jam ekzistantaj datumoj
tipo de unsigned char kiel bitoko.
Kaj tiam, de nun, ni ja faris tiun tipon definition-- denove,
kiu estas kutime tuj estos ĉe la supro de nia punkto C dosieroj, aŭ en punkto H dosieron
aparte, ni povas nur uzi mordi ĉie
ni estus uzinta unsigned char.
Tio estas multe pli mallonga por tajpi.
>> En CS50 la biblioteko, ni faru this-- ni typedef char stelo kiel ŝnuro.
Ĉar ni abstraída for la ideon de punteros.
Kaj la fakto ke kordoj estas vere montrilo al la unua character--
tabelo de signoj, ĉar ĝi estas nur
tiel konfuza akiri vian kapon ĉirkaŭe that-- sed fakte tio estas kion ni faros.
Kaj ĉi tiu linio de kodo reale ekzistas en CS50 punkto H typedef char stelo kordoj,
nur por fari ke iom malpli ĝene devi trakti.
Jam vi vidis probable iomete de la valoron tie,
sed typedef fariĝas granda kiam kombinita kun strukturoj,
kiel mi aludis al pli frua.
Strukturoj havas du-vorto tipo nomo.
Kaj tiel ili povas esti vere ĝena krei variabloj de tiu tipo,
aŭ [inaudible] de struct io, via linioj povas simple akiri vere, vere longa.
Kaj tiel vi povas uzi typedef veni supren kun io multe pli mallonga.
>> Do se mi difini aŭton kiel sekvas, mi havas mia difino de car-- struct aŭto,
kaj tiam malfermu krispa krampoj, ĉiuj la kampoj de mia strukturo,
proksime krispa krampoj, duon-colon-- post mi difinis mian datumtipo,
Mi povas typedef struct aŭto kiel aŭto substreko t.
Kaj poste kiam mi faris tion, nun ĉiu fojon mi estus alie uzita struct
aŭto, mi povas simple uzi aŭton substreko t.
Tio estas multe pli mallonga de vojo esprimi tiun ideon de ĉi tiu strukturo
ke mi ĵus kreis.
>> Alternative, ĉar strukturoj estas tiel komune uzita en typedef,
ekzistas a-- vi efektive povas difini la entajpi inter la komenco kaj la fino.
Do la typedef strukturo denove estas kutime typedef, malnova nomo, nova nomo,
kie la nomoj estas jam tipoj kiu vi kreis.
Sed vi povas fakte difini strukturo ĝuste en la mezo de la typedef
anstataŭ devi difini ĝin aparte, kaj tiam
fari typedef de ĝi.
Kaj tio aspektus samkiel this-- typedef struct aŭto,
malfermita krispa krampoj, ĉiuj de via kampo difinoj, proksime frizita streĉa, aŭto t.
Do la malnova nomo estas ĉiuj tiu aĵo en la ruĝaj, vi simple difini la strukturon
kaj nomante ĝin samtempe.
Kaj tiam la nova nomo Estas aŭto substreko t.
Kaj do se ni ekuzas tion en kodo, antaŭe mi
povus diri, struct aŭto mycar duon-dupunkto.
Nu mi ne devas fari tion plu.
Nun ke mi jam uzis la typedef mi povas simple diri aŭto substreko t, mycar.
Tio estas multe pli mallonga de vojo fari ĝin, kaj fakte, ĝi estas
tuj estos multe pli konvena, speciale
kiel vi ekuzas strukturoj multe pli en via kodo.
>> Mi Doug Lloyd.
Jen CS50.