1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Nii et kui olete näinud meie video struktuurid, 3 00:00:07,220 --> 00:00:10,950 sa juba tead, et meil on võime määrata oma andmete liigid. 4 00:00:10,950 --> 00:00:14,530 Aga kui sa oled kasutanud struktuurid, sa tead et mõnikord kasutavad neid andmeid liigid 5 00:00:14,530 --> 00:00:16,446 võib tegelikult olla natuke tülikas, sest me 6 00:00:16,446 --> 00:00:19,210 pead kasutama struct märksõna Kui me töötame koos them-- 7 00:00:19,210 --> 00:00:21,257 struct auto või struct õpilane. 8 00:00:21,257 --> 00:00:23,090 See on palju kirjutada Kui me tahame olla 9 00:00:23,090 --> 00:00:24,830 midagi lihtsat, nagu struktuuri. 10 00:00:24,830 --> 00:00:26,390 Tahame have-- tahame suutma töötada koos asju 11 00:00:26,390 --> 00:00:29,350 natuke rohkem stenografist viis, nagu int või char, midagi palju 12 00:00:29,350 --> 00:00:31,240 mugavam kirjutada. 13 00:00:31,240 --> 00:00:33,100 >> Õnneks on viis seda teha C, 14 00:00:33,100 --> 00:00:37,150 midagi nimetatakse typedef, mis on viis luua stenografisti või ümber kirjutada 15 00:00:37,150 --> 00:00:38,640 nimed andmetüüpe. 16 00:00:38,640 --> 00:00:40,720 Võite kirjutada andmeid liiki mis on juba olemas, 17 00:00:40,720 --> 00:00:43,970 või võite kirjutada andmetüübid oma. 18 00:00:43,970 --> 00:00:46,890 >> Esimene asi, mida teha, on teil määratleda tüüpi tavalisel viisil, 19 00:00:46,890 --> 00:00:52,271 ja siis sa lihtsalt teise nimega see midagi else-- typedef vana nimi uus nimi. 20 00:00:52,271 --> 00:00:53,520 Päris lihtne, eks? 21 00:00:53,520 --> 00:00:56,240 Nii võiksime typedef näiteks juba olemasolevate andmete 22 00:00:56,240 --> 00:01:00,266 tüüpi märgistamata sümbolid nagu bait. 23 00:01:00,266 --> 00:01:03,140 Ja siis, nüüd, kui me oleme tegi seda tüüpi definition-- uuesti, 24 00:01:03,140 --> 00:01:07,570 mis on tavaliselt läheb tipus Meie dot C faile, või dot H faili 25 00:01:07,570 --> 00:01:10,590 eraldi, saame lihtsalt Kasutage hammustavad kõikjal 26 00:01:10,590 --> 00:01:12,180 me oleks kasutanud märgistamata sümbolid. 27 00:01:12,180 --> 00:01:14,300 See on palju lühem kirjutada. 28 00:01:14,300 --> 00:01:19,280 >> In CS50 raamatukogu, teeme see-- me typedef char staar string. 29 00:01:19,280 --> 00:01:21,400 Kuna me ammutatava ära idee suunanäitajaks. 30 00:01:21,400 --> 00:01:25,072 Ja asjaolu, et string on tõesti kursor esimesele character-- 31 00:01:25,072 --> 00:01:26,780 array tähemärki sest see on lihtsalt 32 00:01:26,780 --> 00:01:29,863 nii segane, et su pea ümber selle-- kuid tegelikult see, mida me teeme. 33 00:01:29,863 --> 00:01:35,140 Ja see koodirida tegelikult olemas in CS50 dot H typedef char star string, 34 00:01:35,140 --> 00:01:39,021 lihtsalt teha, et veidi vähem tülikas tegelema. 35 00:01:39,021 --> 00:01:41,520 Juba oled näinud ilmselt natuke väärtus siin, 36 00:01:41,520 --> 00:01:44,160 kuid typedef muutub väga kui koos struktuure, 37 00:01:44,160 --> 00:01:45,780 nagu ma vihjas varem. 38 00:01:45,780 --> 00:01:48,550 Struktuurid on kaks sõnatüübi nimi. 39 00:01:48,550 --> 00:01:52,020 Ja nii nad võivad olla väga tüütu luua muutujaid seda tüüpi, 40 00:01:52,020 --> 00:01:56,310 või [kuuldamatu] on struct midagi, oma read lihtsalt saada tõesti pikk. 41 00:01:56,310 --> 00:01:59,400 Ja nii saate typedef tulla välja midagi palju lühem. 42 00:01:59,400 --> 00:02:04,650 >> Nii et kui ma määratleda auto järgmiselt mul minu määratlus car-- struct auto, 43 00:02:04,650 --> 00:02:07,230 ja avage lokkis traksidega, kõik valdkonnas oma struktuuri, 44 00:02:07,230 --> 00:02:11,030 tihe lokkis traksidega, semi-colon-- kui olen määratletud minu andmete tüübi, 45 00:02:11,030 --> 00:02:15,680 Ma ei typedef struct auto nagu auto alakriips t. 46 00:02:15,680 --> 00:02:19,670 Ja siis, kui ma olen teinud, et nüüd iga kord, kui ma oleks muidu kasutatud struct 47 00:02:19,670 --> 00:02:22,680 auto, ma ei saa lihtsalt kasutada auto alakriips t. 48 00:02:22,680 --> 00:02:26,480 See on palju lühem viis väljendada seda ideed selle struktuuri 49 00:02:26,480 --> 00:02:28,530 et ma lihtsalt loodud. 50 00:02:28,530 --> 00:02:33,620 >> Alternatiivselt, sest struktuuride on nii kasutatakse tavaliselt typedef, 51 00:02:33,620 --> 00:02:37,980 seal on a-- saab tegelikult määrata kirjuta algusest kuni lõpuni. 52 00:02:37,980 --> 00:02:42,020 Nii typedef struktuur on jälle Tavaliselt typedef, vana nimi, uus nimi 53 00:02:42,020 --> 00:02:45,360 kus nimed on juba tüübid, mida olete loonud. 54 00:02:45,360 --> 00:02:49,620 Aga sa võid tegelikult määratleda struktuuri otse keset typedef 55 00:02:49,620 --> 00:02:51,760 selle asemel et määratleda seda eraldi, ja seejärel 56 00:02:51,760 --> 00:02:52,990 teha typedef ta. 57 00:02:52,990 --> 00:02:55,780 Ja mis näevad välja nagu see-- typedef struct auto, 58 00:02:55,780 --> 00:02:59,957 Avatud lokkis traksidega, kõik oma valdkonnas mõisted, tihe lokkis traksidega, auto t. 59 00:02:59,957 --> 00:03:03,290 Nii vana nimi on kõik see kraam on punane, sa oled lihtsalt määratleda struktuuri 60 00:03:03,290 --> 00:03:05,610 ja nimetamise seda samal ajal. 61 00:03:05,610 --> 00:03:07,790 Ja siis uus nimi on auto alakriips t. 62 00:03:07,790 --> 00:03:10,150 Ja kui me hakkame kasutama Seda koodi, varem ma 63 00:03:10,150 --> 00:03:13,279 oleks võinud öelda, struct auto mycar semikooloniga. 64 00:03:13,279 --> 00:03:14,820 Noh ma ei pea seda tegema enam. 65 00:03:14,820 --> 00:03:20,265 Nüüd, kui ma olen kasutanud typedef, ma võib öelda auto alakriips t, mycar. 66 00:03:20,265 --> 00:03:22,640 See on palju lühem viis seda teha, ja tegelikult on see 67 00:03:22,640 --> 00:03:24,515 saab olema palju rohkem sobivat eriti 68 00:03:24,515 --> 00:03:27,730 kui hakkate kasutama struktuure palju rohkem oma koodi. 69 00:03:27,730 --> 00:03:28,810 >> Ma olen Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 See on CS50. 71 00:03:30,640 --> 00:03:32,415