DOUG LLOYD: Felly, os ydych chi wedi gweld ein fideo ar strwythurau,
ydych chi eisoes yn gwybod bod gennym y gallu i ddiffinio ein mathau data hunain.
Ond os ydych wedi strwythurau a ddefnyddir, eich bod yn gwybod sydd weithiau'n defnyddio rhai mathau o ddata
Gall mewn gwirionedd fod ychydig yn feichus oherwydd ein
rhaid i ni ddefnyddio'r gair allweddol struct pan fyddwn yn gweithio gyda them--
car struct neu fyfyriwr struct.
Mae hynny'n llawer i deipio os ydym yn unig am gael
rhywbeth syml, fel strwythur.
Rydym yn awyddus i have-- rydym am yn gallu gweithio gyda phethau
ychydig ffordd fwy llaw fer, fel int neu torgoch, rhywbeth llawer
yn fwy cyfleus i deipio.
>> Yn ffodus, mae yna ffordd o wneud hyn yn C,
gyda rhywbeth o'r enw typedef, sef ffordd o greu law-fer neu ailysgrifennu
enwau ar gyfer mathau data.
Gallwch chi ailysgrifennu'r data mathau sydd eisoes yn bodoli,
neu gallwch ysgrifennu mathau o ddata eich hun.
>> Y peth cyntaf y byddwch yn ei wneud yw i chi diffinio yn fath yn y ffordd arferol,
ac yna 'ch jyst Alias ​​i rywbeth else-- enw yr hen typedef enw newydd.
Pretty syml, dde?
Felly, gallem typedef er enghraifft, mae'r data sydd eisoes yn bodoli
math o torgoch heb eu harwyddo fel beit.
Ac yna, o hyn ymlaen, ar ôl i ni gwneud y math hwn definition-- eto,
sydd fel arfer yn mynd i fod ar y brig o'n ffeiliau dot C, neu mewn ffeil H dot
ar wahân, ein gallu yn unig defnyddio brathu ym mhob man
byddem wedi defnyddio torgoch heb eu harwyddo.
Mae hynny'n llawer byrrach i deipio.
>> Yn llyfrgell CS50, rydym yn ei wneud this-- rydym typedef seren torgoch fel llinyn.
Oherwydd ein bod dynnir ymaith y syniad o awgrymiadau.
Ac mae'r ffaith bod llinyn yn wirioneddol pwyntydd i'r character-- cyntaf
amrywiaeth o gymeriadau, am ei fod yn unig
mor ddryslyd i gael eich pen o gwmpas that-- ond mewn gwirionedd dyna beth rydym yn ei wneud.
Ac mae y llinell hon o god yn bodoli mewn gwirionedd mewn llinyn seren torgoch CS50 dot H typedef,
dim ond er mwyn gwneud hynny ychydig yn llai feichus i gael i ddelio ag ef.
Ydych eisoes wedi gweld yn ôl pob tebyg yn ychydig bach o werth yma,
ond typedef yn dod yn wych o'u cyfuno â strwythurau,
gan fy mod yn cyfeirio at gynharach.
Strwythurau cael enw math dau-air.
Ac fel y gallant fod yn wirioneddol blino i greu newidynnau o'r math hwnnw,
neu [Anghlywadwy] o rywbeth struct, eich Gall llinellau dim ond cael iawn, iawn o amser.
Ac fel y gallwch ddefnyddio typedef i ddod o hyd i rywbeth llawer byrrach.
>> Felly, os wyf yn diffinio car fel a ganlyn, yr wyf wedi fy diffiniad o gar struct car--,
ac yna agor cyrliog Brace, pob meysydd fy strwythur,
Brace cyrliog agos, lled-colon-- ar ôl i mi a ddiffinnir fy math data,
Gallaf typedef struct car fel tanlinellu car t.
Ac yna pan fyddaf wedi gwneud hynny, yn awr bob struct amser byddwn wedi defnyddio fel arall
car, gallaf jyst arfer car tanlinellu t.
Mae hynny'n llawer byrrach o ffordd o mynegi syniad hwn o strwythur hwn
yr wyf newydd ei greu.
>> Fel arall, oherwydd bod strwythurau yn cael eu felly ddefnyddir yn gyffredin mewn typedef,
mae a-- alli 'n weithredol ddiffinio'r deipio i mewn rhwng dechrau a diwedd.
Felly mae'r strwythur typedef eto'n Fel arfer typedef, hen enw, enw newydd,
lle yr enwau yn barod mathau eich bod wedi creu.
Ond gallwch mewn gwirionedd yn diffinio strwythur dde yng nghanol y typedef
yn hytrach na gorfod ddiffinio ar wahân, ac yna
gwneud typedef ohono.
A fyddai'n edrych yn union fel car struct typedef this--,
Brace cyrliog agored, eich holl maes diffiniadau, Brace cyrliog agos, t car.
Felly yr hen enw yw holl bethau yn y coch, eich bod newydd diffinio'r strwythur
ac enwi ei ar yr un pryd.
Ac yna yr enw newydd yn tanlinellu car t.
Ac felly os ydym yn dechrau ei ddefnyddio hyn mewn cod, yn flaenorol i mi
allai fod wedi dweud, struct mycar car hanner colon.
Nid Wel mae'n rhaid i mi wneud hynny anymore.
Nawr fy mod i wedi defnyddio'r typedef, yr wyf yn Gall dim ond dweud t tanlinellu car, mycar.
Mae hynny'n llawer byrrach o ffordd i wneud hynny, ac mewn gwirionedd, mae'n
mynd i fod yn llawer mwy cyfleus, yn enwedig
wrth i chi ddechrau defnyddio strwythurau llawer mwy yn eich cod.
>> Rwy'n Doug Lloyd.
Mae hyn yn CS50.