1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 Doug LLOYD: Torej, če ste videli naš video na objektih, 3 00:00:07,220 --> 00:00:10,950 že veste, da imamo sposobnost, da opredelijo svoje lastne podatkovne tipe. 4 00:00:10,950 --> 00:00:14,530 Ampak, če ste rabljenih struktur, veste da včasih uporabi teh vrst podatkov 5 00:00:14,530 --> 00:00:16,446 lahko dejansko malo nerodno, ker mi 6 00:00:16,446 --> 00:00:19,210 morali uporabiti struct ključno besedo ko delamo z them-- 7 00:00:19,210 --> 00:00:21,257 struct avto ali struct študent. 8 00:00:21,257 --> 00:00:23,090 To je veliko, da tip če smo le želeli imeti 9 00:00:23,090 --> 00:00:24,830 nekaj preprostega, kot strukturo. 10 00:00:24,830 --> 00:00:26,390 Želimo have-- želimo biti sposoben delati stvari 11 00:00:26,390 --> 00:00:29,350 malo več Stenografski način, kot int ali char, nekaj veliko 12 00:00:29,350 --> 00:00:31,240 bolj primeren za tip. 13 00:00:31,240 --> 00:00:33,100 >> Na srečo, tam je način, da to storite v C, 14 00:00:33,100 --> 00:00:37,150 z nečim, kar se imenuje typedef, ki je način za ustvarjanje okrajšava ali predelajo 15 00:00:37,150 --> 00:00:38,640 Imena za podatkovne tipe. 16 00:00:38,640 --> 00:00:40,720 Lahko reportaža podatke Vrste, ki že obstajajo, 17 00:00:40,720 --> 00:00:43,970 ali lahko napišete podatkovne tipe svoje. 18 00:00:43,970 --> 00:00:46,890 >> Prva stvar, kar morate storiti je vas opredeliti vrsto na običajen način, 19 00:00:46,890 --> 00:00:52,271 in potem si ga ALIAS nečemu else-- typedef staro ime novo ime. 20 00:00:52,271 --> 00:00:53,520 Precej preprosto, kajne? 21 00:00:53,520 --> 00:00:56,240 Tako smo typedef npr že obstoječi podatki 22 00:00:56,240 --> 00:01:00,266 tip unsigned char kot bajt. 23 00:01:00,266 --> 00:01:03,140 In potem, od zdaj naprej, ko smo jih je ta vrsta definition-- spet, 24 00:01:03,140 --> 00:01:07,570 ki se običajno bo na vrhu naših dot datotek C, ali v H dot datoteko 25 00:01:07,570 --> 00:01:10,590 ločeno, smo lahko samo Uporabljajte ugriz povsod 26 00:01:10,590 --> 00:01:12,180 mi pa bi uporabili nepodpisane char. 27 00:01:12,180 --> 00:01:14,300 To je veliko krajši, da tip. 28 00:01:14,300 --> 00:01:19,280 >> V knjižnici CS50 je, delamo this-- smo typedef char zvezdo kot niz. 29 00:01:19,280 --> 00:01:21,400 Ker smo načrpane stran ideja kazalcev. 30 00:01:21,400 --> 00:01:25,072 In dejstvo, da je niz res kazalec na prvi character-- 31 00:01:25,072 --> 00:01:26,780 niz znakov, saj to je samo 32 00:01:26,780 --> 00:01:29,863 tako zmedeno, da bi dobili svojo glavo okoli that-- ampak v dejstvu, da je tisto, kar počnemo. 33 00:01:29,863 --> 00:01:35,140 In ta vrstica kode dejansko obstaja v CS50 Dot H typedef char zvezdicami vrvico, 34 00:01:35,140 --> 00:01:39,021 samo, da bi to malo manj okorni, da se morajo ukvarjati s. 35 00:01:39,021 --> 00:01:41,520 Že ste videli verjetno malo vrednosti tod 36 00:01:41,520 --> 00:01:44,160 vendar typedef postane velik v kombinaciji s strukturami, 37 00:01:44,160 --> 00:01:45,780 kot sem namignil že prej. 38 00:01:45,780 --> 00:01:48,550 Strukture imajo dve besedni ime tipa. 39 00:01:48,550 --> 00:01:52,020 In tako so lahko zelo nadležno ustvariti spremenljivke tega tipa, 40 00:01:52,020 --> 00:01:56,310 ali [neslišno] z dne struct nečesa, vaš linije lahko samo zares, zares dolgo. 41 00:01:56,310 --> 00:01:59,400 In tako lahko uporabite typedef priti z nekaj veliko krajši. 42 00:01:59,400 --> 00:02:04,650 >> Torej, če sem opredeliti avto takole, imam Moja definicija car-- struct avto, 43 00:02:04,650 --> 00:02:07,230 in nato odprite kodrasti naramnicami, vse polja mojega strukture, 44 00:02:07,230 --> 00:02:11,030 blizu kodrasti naramnicami, semi-colon-- ko sem definirana mojo vrsto podatkov, 45 00:02:11,030 --> 00:02:15,680 Znam typedef struct avto kot avto podčrtaja t. 46 00:02:15,680 --> 00:02:19,670 In potem, ko sem storil, da se zdaj vsak ko sem bi sicer uporabili struct 47 00:02:19,670 --> 00:02:22,680 avto, lahko sem samo uporabo avtomobila podčrtaj t. 48 00:02:22,680 --> 00:02:26,480 To je veliko krajši, kako bi izražajo to zamisel te strukture 49 00:02:26,480 --> 00:02:28,530 ki sem jo pravkar ustvarili. 50 00:02:28,530 --> 00:02:33,620 >> Druga možnost je, ker struktur se tako pogosto uporablja v typedef, 51 00:02:33,620 --> 00:02:37,980 tam je a-- lahko dejansko določite tip med začetkom in koncem. 52 00:02:37,980 --> 00:02:42,020 Torej struktura typedef spet običajno typedef, staro ime, novo ime, 53 00:02:42,020 --> 00:02:45,360 kjer so imena že Vrste, ki ste jih ustvarili. 54 00:02:45,360 --> 00:02:49,620 Vendar lahko dejansko opredelijo strukturo prav v sredini typedef 55 00:02:49,620 --> 00:02:51,760 namesto da opredeli je ločeno in nato 56 00:02:51,760 --> 00:02:52,990 narediti typedef to. 57 00:02:52,990 --> 00:02:55,780 In da bi bila videti kot this-- typedef struct avto, 58 00:02:55,780 --> 00:02:59,957 open kodrasti naramnicami, vse vašem področju definicije, blizu kodrasti brace, avto t. 59 00:02:59,957 --> 00:03:03,290 Tako staro ime je vse te stvari v rdeča, ti si samo za strukturo 60 00:03:03,290 --> 00:03:05,610 in poimenovanje hkrati. 61 00:03:05,610 --> 00:03:07,790 In potem je novo ime je avto podčrtaj t. 62 00:03:07,790 --> 00:03:10,150 In tako če začnemo uporabljati to kodo, prej sem 63 00:03:10,150 --> 00:03:13,279 bi rekel, struct avto mycar podpičjem. 64 00:03:13,279 --> 00:03:14,820 No, jaz ne bi bilo treba storiti več. 65 00:03:14,820 --> 00:03:20,265 Zdaj, ko sem uporabil typedef sem Lahko samo rečem avto podčrtaj t, mycar. 66 00:03:20,265 --> 00:03:22,640 To je veliko krajši način to storiti, in v resnici, je 67 00:03:22,640 --> 00:03:24,515 bo veliko več prikladno, zlasti 68 00:03:24,515 --> 00:03:27,730 kot začnete uporabljati strukture veliko več v kodi. 69 00:03:27,730 --> 00:03:28,810 >> Sem Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 To je CS50. 71 00:03:30,640 --> 00:03:32,415