1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: So as jy het gesien ons video op strukture, 3 00:00:07,220 --> 00:00:10,950 jy reeds weet dat ons die vermoë om ons eie tipes data te definieer. 4 00:00:10,950 --> 00:00:14,530 Maar as jy gebruik het strukture, jy weet wat soms die gebruik van dié data tipes 5 00:00:14,530 --> 00:00:16,446 kan eintlik 'n bietjie wees omslagtig omdat ons 6 00:00:16,446 --> 00:00:19,210 moet die struct navraag gebruik wanneer ons werk met them-- 7 00:00:19,210 --> 00:00:21,257 struct motor of struct student. 8 00:00:21,257 --> 00:00:23,090 Dit is 'n baie om te tik as ons wil net hê 9 00:00:23,090 --> 00:00:24,830 iets eenvoudig soos 'n struktuur. 10 00:00:24,830 --> 00:00:26,390 Ons wil have-- ons wil in staat wees om te werk met dinge 11 00:00:26,390 --> 00:00:29,350 'n bietjie meer snelskrif manier, soos int of char, iets wat 'n baie 12 00:00:29,350 --> 00:00:31,240 meer gerieflik om te tik. 13 00:00:31,240 --> 00:00:33,100 >> Gelukkig is daar ' 'n manier om dit te doen in C, 14 00:00:33,100 --> 00:00:37,150 met iets typedef genoem, wat 'n manier om te skep of herskryf snelskrif 15 00:00:37,150 --> 00:00:38,640 name vir data tipes. 16 00:00:38,640 --> 00:00:40,720 Jy kan data herskryf tipes wat reeds bestaan, 17 00:00:40,720 --> 00:00:43,970 of jy kan data tipes jou eie te skryf. 18 00:00:43,970 --> 00:00:46,890 >> Die eerste ding wat jy doen, is jy definieer 'n soort in die normale manier, 19 00:00:46,890 --> 00:00:52,271 en dan kan jy net alias dit na iets else-- typedef ou naam nuwe naam. 20 00:00:52,271 --> 00:00:53,520 Redelik eenvoudig, reg? 21 00:00:53,520 --> 00:00:56,240 Sodat ons kan typedef byvoorbeeld die reeds bestaande data 22 00:00:56,240 --> 00:01:00,266 tipe unsigned char as byte. 23 00:01:00,266 --> 00:01:03,140 En dan, van nou af, nadat ons het weer het hierdie tipe definition--, 24 00:01:03,140 --> 00:01:07,570 wat gewoonlik gaan wees op die top van ons dot C lêers, of in 'n dot H lêer 25 00:01:07,570 --> 00:01:10,590 afsonderlik, ons kan net gebruik byt oral 26 00:01:10,590 --> 00:01:12,180 ons sou gebruik unsigned char. 27 00:01:12,180 --> 00:01:14,300 Dit is 'n baie korter te tik. 28 00:01:14,300 --> 00:01:19,280 >> In die biblioteek CS50 se ons this-- doen ons typedef char ster as string. 29 00:01:19,280 --> 00:01:21,400 Omdat ons onttrek weg van die idee van wysers. 30 00:01:21,400 --> 00:01:25,072 En die feit dat 'n string is regtig 'n verwysing na die eerste character-- 31 00:01:25,072 --> 00:01:26,780 'n verskeidenheid van die karakters, want dit is net 32 00:01:26,780 --> 00:01:29,863 so verwarrend om jou kop te kry om that-- maar in werklikheid is dit wat ons doen. 33 00:01:29,863 --> 00:01:35,140 En die lyn van die kode werklik bestaan in CS50 dot H typedef char star string, 34 00:01:35,140 --> 00:01:39,021 net dat 'n bietjie minder te maak omslagtig te hê om te hanteer. 35 00:01:39,021 --> 00:01:41,520 Reeds het jy waarskynlik 'n gesien bietjie van die waarde hier 36 00:01:41,520 --> 00:01:44,160 maar typedef word groot wanneer dit gekombineer met strukture, 37 00:01:44,160 --> 00:01:45,780 soos ek vroeër verwys het. 38 00:01:45,780 --> 00:01:48,550 Strukture het 'n twee-woord tik naam. 39 00:01:48,550 --> 00:01:52,020 En so het hulle kan regtig irriterende veranderlikes van daardie tipe te skep, 40 00:01:52,020 --> 00:01:56,310 of [onhoorbaar] van struct iets jou lyne kan net kry regtig, regtig lank. 41 00:01:56,310 --> 00:01:59,400 En so kan jy typedef gebruik om te kom met iets wat 'n baie korter. 42 00:01:59,400 --> 00:02:04,650 >> So as ek definieer 'n motor soos volg, ek het my definisie van 'n car-- struct motor, 43 00:02:04,650 --> 00:02:07,230 en dan oop krullerige brace, al die velde van my struktuur, 44 00:02:07,230 --> 00:02:11,030 naby krullerige brace, semi-colon-- nadat ek my data tipe het gedefinieer, 45 00:02:11,030 --> 00:02:15,680 Ek kan struct typedef motor motor underscore t. 46 00:02:15,680 --> 00:02:19,670 En dan wanneer ek dit gedoen het, nou al tyd wat ek andersins sou gebruik struct 47 00:02:19,670 --> 00:02:22,680 motor, kan ek net gebruik motor underscore t. 48 00:02:22,680 --> 00:02:26,480 Dit is 'n baie korter van 'n manier om druk hierdie idee van hierdie struktuur 49 00:02:26,480 --> 00:02:28,530 dat ek net gemaak. 50 00:02:28,530 --> 00:02:33,620 >> Alternatiewelik, want strukture is so algemeen gebruik word in typedef, 51 00:02:33,620 --> 00:02:37,980 daar is a-- jy eintlik kan definieer die tik in tussen die begin en die einde. 52 00:02:37,980 --> 00:02:42,020 So die typedef struktuur is weer gewoonlik typedef, ou naam, nuwe naam, 53 00:02:42,020 --> 00:02:45,360 waar die name reeds tipes wat jy geskep het. 54 00:02:45,360 --> 00:02:49,620 Maar jy kan eintlik 'n struktuur te definieer reg in die middel van die typedef 55 00:02:49,620 --> 00:02:51,760 in plaas van om te definieer dit afsonderlik en dan 56 00:02:51,760 --> 00:02:52,990 doen 'n typedef daarvan. 57 00:02:52,990 --> 00:02:55,780 En dit sou lyk net soos this-- typedef struct motor, 58 00:02:55,780 --> 00:02:59,957 oop krullerige brace, al jou veld definisies, naby krullerige brace, 'n motor t. 59 00:02:59,957 --> 00:03:03,290 So die ou naam is al daardie dinge in die rooi, is jy net die definisie van die struktuur 60 00:03:03,290 --> 00:03:05,610 en noem dit op dieselfde tyd. 61 00:03:05,610 --> 00:03:07,790 En dan is die nuwe naam is die motor underscore t. 62 00:03:07,790 --> 00:03:10,150 En so as ons begin om te gebruik dit in kode, wat voorheen I 63 00:03:10,150 --> 00:03:13,279 sou gesê struct motor mycar semi-kolon. 64 00:03:13,279 --> 00:03:14,820 Wel, ek het nie meer doen. 65 00:03:14,820 --> 00:03:20,265 Nou dat ek die typedef gebruik het, het ek kan net sê die motor underscore t, mycar. 66 00:03:20,265 --> 00:03:22,640 Dit is 'n baie korter van 'n manier om dit te doen, en in die feit, dit is 67 00:03:22,640 --> 00:03:24,515 gaan 'n baie meer wees gerieflik, veral 68 00:03:24,515 --> 00:03:27,730 as jy begin om strukture te gebruik 'n baie meer in jou kode. 69 00:03:27,730 --> 00:03:28,810 >> Ek is Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Dit is CS50. 71 00:03:30,640 --> 00:03:32,415