1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG Lloyd: Joten jos olet nähneet video rakenteisiin, 3 00:00:07,220 --> 00:00:10,950 tiedät jo, että meillä kyky määritellä omia tietotyyppejä. 4 00:00:10,950 --> 00:00:14,530 Mutta jos olet käyttänyt rakenteita, tiedät että joskus käyttää näitä tietotyyppejä 5 00:00:14,530 --> 00:00:16,446 voi todella olla hieman kömpelöä, koska me 6 00:00:16,446 --> 00:00:19,210 täytyy käyttää struct avainsanan kun olemme kanssa them-- 7 00:00:19,210 --> 00:00:21,257 struct auto tai struct opiskelija. 8 00:00:21,257 --> 00:00:23,090 Että on paljon kirjoittaa jos me vain haluamme olla 9 00:00:23,090 --> 00:00:24,830 jotain yksinkertaista, kuten rakenne. 10 00:00:24,830 --> 00:00:26,390 Haluamme have-- haluamme pystyä toimimaan asioita 11 00:00:26,390 --> 00:00:29,350 hieman pika tavalla, kuten int tai char, jotain paljon 12 00:00:29,350 --> 00:00:31,240 helpompaa kirjoittaa. 13 00:00:31,240 --> 00:00:33,100 >> Onneksi tapa tehdä tämä C, 14 00:00:33,100 --> 00:00:37,150 jotain kutsutaan typedef, joka on tapa luoda pika tai kirjoittaa uudelleen 15 00:00:37,150 --> 00:00:38,640 nimet tietotyyppejä. 16 00:00:38,640 --> 00:00:40,720 Voit kirjoittaa tiedot tyypit jo olemassa, 17 00:00:40,720 --> 00:00:43,970 tai voit kirjoittaa dataa eri omaa. 18 00:00:43,970 --> 00:00:46,890 >> Ensimmäinen asia, et on sinun määritellä tyyppi normaalilla tavalla, 19 00:00:46,890 --> 00:00:52,271 ja sitten vain alias sitä jotain else-- typedef vanha nimi uusi nimi. 20 00:00:52,271 --> 00:00:53,520 Melko yksinkertainen, eikö? 21 00:00:53,520 --> 00:00:56,240 Jotta voisimme typedef esimerkiksi, jo olemassa olevat tiedot 22 00:00:56,240 --> 00:01:00,266 tyyppi unsigned char kuin tavu. 23 00:01:00,266 --> 00:01:03,140 Ja sitten, tästä lähtien, kun olemme teki tämän tyyppinen definition-- uudelleen, 24 00:01:03,140 --> 00:01:07,570 joka on yleensä olemaan huipulla meidän piste C tiedostoja, tai piste H tiedosto 25 00:01:07,570 --> 00:01:10,590 erikseen, voimme vain Käytä purra kaikkialla 26 00:01:10,590 --> 00:01:12,180 olisimme käyttää unsigned char. 27 00:01:12,180 --> 00:01:14,300 Se on paljon lyhyempi kirjoittaa. 28 00:01:14,300 --> 00:01:19,280 >> Vuonna CS50 kirjasto, teemme this-- me typedef char tähden string. 29 00:01:19,280 --> 00:01:21,400 Koska me otetun pois ajatus viitteitä. 30 00:01:21,400 --> 00:01:25,072 Ja se, että merkkijono on todella osoitin ensimmäiseen character-- 31 00:01:25,072 --> 00:01:26,780 joukko merkkejä, koska se on vain 32 00:01:26,780 --> 00:01:29,863 niin hämmentävää saa pään ympärillä that-- mutta itse asiassa se mitä teemme. 33 00:01:29,863 --> 00:01:35,140 Ja tämä rivi koodia todella on olemassa vuonna CS50 piste H typedef char tähti nuora, 34 00:01:35,140 --> 00:01:39,021 vain tehdä, että hieman vähemmän hankala on käsiteltävä. 35 00:01:39,021 --> 00:01:41,520 Jo olet nähnyt luultavasti hieman arvosta täällä, 36 00:01:41,520 --> 00:01:44,160 mutta typedef tulee suuri yhdistettynä rakenteita, 37 00:01:44,160 --> 00:01:45,780 kuten viittasin aikaisemmin. 38 00:01:45,780 --> 00:01:48,550 Rakenteet on kahden sanan tyypin nimi. 39 00:01:48,550 --> 00:01:52,020 Ja jotta he voivat olla todella ärsyttävää luoda muuttujia kyseisen tyypin, 40 00:01:52,020 --> 00:01:56,310 tai [äänetön] struct jotain, sinun linjat voi vain saada todella, todella pitkä. 41 00:01:56,310 --> 00:01:59,400 Ja joten voit käyttää typedef tulla kanssa jotain paljon lyhyempi. 42 00:01:59,400 --> 00:02:04,650 >> Jos siis määritellä auto näin, minulla on minun määritelmä car-- struct auto, 43 00:02:04,650 --> 00:02:07,230 ja avaa kihara ahdin, kaikki aloilla minun rakenne, 44 00:02:07,230 --> 00:02:11,030 lähellä kihara ahdin, semi-colon-- kun olen määritellyt tietoni tyyppi, 45 00:02:11,030 --> 00:02:15,680 Voin typedef struct auton auto alaviiva t. 46 00:02:15,680 --> 00:02:19,670 Ja sitten kun olen tehnyt, että nyt jokainen aika olisin muuten käyttää struct 47 00:02:19,670 --> 00:02:22,680 auto, voin vain käyttää autoa alaviivaa t. 48 00:02:22,680 --> 00:02:26,480 Se on paljon lyhyempi tapa ilmaista tämä ajatus tämän rakenteen 49 00:02:26,480 --> 00:02:28,530 että olen juuri luonut. 50 00:02:28,530 --> 00:02:33,620 >> Vaihtoehtoisesti, koska rakenteet ovat niin yleisesti käytetty typedef, 51 00:02:33,620 --> 00:02:37,980 siellä a-- voit itse määritellä kirjoita alun ja lopun. 52 00:02:37,980 --> 00:02:42,020 Joten typedef rakenne taas on yleensä typedef, vanha nimi, uusi nimi, 53 00:02:42,020 --> 00:02:45,360 jossa nimet ovat jo tyypit, jotka olet luonut. 54 00:02:45,360 --> 00:02:49,620 Mutta voit itse määritellä rakenne aivan keskellä typedef 55 00:02:49,620 --> 00:02:51,760 sen sijaan, määritellä erikseen, ja sitten 56 00:02:51,760 --> 00:02:52,990 tehdä typedef siitä. 57 00:02:52,990 --> 00:02:55,780 Ja joka näyttää aivan kuten this-- typedef struct auto, 58 00:02:55,780 --> 00:02:59,957 avoin kihara ahdin, kaikki kentän määritelmät, lähellä kihara ahdin, auto t. 59 00:02:59,957 --> 00:03:03,290 Joten vanha nimi on kaikki jutut punainen, olet vain määrittelemällä rakenne 60 00:03:03,290 --> 00:03:05,610 ja nimeämällä se samanaikaisesti. 61 00:03:05,610 --> 00:03:07,790 Ja sitten uusi nimi on auto alaviiva t. 62 00:03:07,790 --> 00:03:10,150 Joten jos alamme käyttää Tämän koodin, aiemmin I 63 00:03:10,150 --> 00:03:13,279 olisi voinut sanoa, struct auto MyCar puolipisteellä. 64 00:03:13,279 --> 00:03:14,820 No en tarvitse tehdä sitä enää. 65 00:03:14,820 --> 00:03:20,265 Nyt kun olen käyttänyt typedef, I voi vain sanoa auton alaviiva t, MyCar. 66 00:03:20,265 --> 00:03:22,640 Se on paljon lyhyemmän tavalla tehdä se, ja itse asiassa, se on 67 00:03:22,640 --> 00:03:24,515 olemaan paljon enemmän kätevä, varsinkin 68 00:03:24,515 --> 00:03:27,730 kun alkaa käyttää rakenteiden paljon enemmän koodissa. 69 00:03:27,730 --> 00:03:28,810 >> Olen Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Tämä on CS50. 71 00:03:30,640 --> 00:03:32,415