1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Tehát, ha már látta a videót struktúrák, 3 00:00:07,220 --> 00:00:10,950 Ön már tudja, hogy mi van a képes meghatározni a saját adattípusok. 4 00:00:10,950 --> 00:00:14,530 De ha már használta a szerkezetek, tudod hogy néha használja ezeket adattípusok 5 00:00:14,530 --> 00:00:16,446 is lehet egy kicsit nehézkes, mert 6 00:00:16,446 --> 00:00:19,210 Ki kell használni a struct kulcsszó amikor dolgozunk them-- 7 00:00:19,210 --> 00:00:21,257 struct autó, vagy struct diák. 8 00:00:21,257 --> 00:00:23,090 Ez sokat gépelni ha csak azt, hogy 9 00:00:23,090 --> 00:00:24,830 valami egyszerű, mint egy szerkezetet. 10 00:00:24,830 --> 00:00:26,390 Azt akarjuk, hogy have-- akarunk képes legyen együttműködni a dolgokat 11 00:00:26,390 --> 00:00:29,350 egy kicsit gyors- módon, mint int vagy char, valami sokat 12 00:00:29,350 --> 00:00:31,240 kényelmesebb gépelni. 13 00:00:31,240 --> 00:00:33,100 >> Szerencsére van Egy módja ennek a C, 14 00:00:33,100 --> 00:00:37,150 egy úgynevezett typedef, amely hogyan teremtsünk gyors- vagy újraírt 15 00:00:37,150 --> 00:00:38,640 nevek adattípusok. 16 00:00:38,640 --> 00:00:40,720 Akkor átírni adatok típusok, amelyek már léteznek, 17 00:00:40,720 --> 00:00:43,970 vagy írhat adattípusok saját. 18 00:00:43,970 --> 00:00:46,890 >> Az első dolog, amit teszel, akkor meghatározza a típus a szokásos módon, 19 00:00:46,890 --> 00:00:52,271 és akkor csak Alias, hogy valami else-- typedef régi neve az új nevet. 20 00:00:52,271 --> 00:00:53,520 Elég egyszerű, ugye? 21 00:00:53,520 --> 00:00:56,240 Így lehet typedef például a már meglévő adatok 22 00:00:56,240 --> 00:01:00,266 típusú unsigned char bájt. 23 00:01:00,266 --> 00:01:03,140 És akkor, mostantól, miután már tette ezt a fajta definition-- újra, 24 00:01:03,140 --> 00:01:07,570 amely általában lesz meg a felső a mi dot C fájlokat, vagy egy pontban H fájl 25 00:01:07,570 --> 00:01:10,590 külön, mi csak használja harapni mindenhol 26 00:01:10,590 --> 00:01:12,180 mi lett volna használni unsigned char. 27 00:01:12,180 --> 00:01:14,300 Ez sokkal rövidebb gépelni. 28 00:01:14,300 --> 00:01:19,280 >> Ebben CS50 könyvtára, mi this-- mi typedef char csillag, mint karaktersorozat. 29 00:01:19,280 --> 00:01:21,400 Mert mi absztrahált távol az ötletet mutatók. 30 00:01:21,400 --> 00:01:25,072 És az a tény, hogy egy string valóban egy mutatót az első character-- 31 00:01:25,072 --> 00:01:26,780 egy sor karakterek, mert ez csak 32 00:01:26,780 --> 00:01:29,863 Annyira zavaró, hogy a fejed körül hogy-- de valójában ez az, amit csinálunk. 33 00:01:29,863 --> 00:01:35,140 És ezt a kódsort tényleg létezik A CS50 dot H typedef char csillagos húr, 34 00:01:35,140 --> 00:01:39,021 csak azért, hogy, hogy egy kicsit kevésbé nehézkes kell foglalkozni. 35 00:01:39,021 --> 00:01:41,520 Már láttad valószínűleg egy kicsit az érték itt, 36 00:01:41,520 --> 00:01:44,160 de typedef válik nagyszerű ha együtt struktúrák, 37 00:01:44,160 --> 00:01:45,780 mint utaltam korábban. 38 00:01:45,780 --> 00:01:48,550 Struktúrák van egy-két szót típus neve. 39 00:01:48,550 --> 00:01:52,020 És így lehet igazán bosszantó létrehozni változók az ilyen típusú, 40 00:01:52,020 --> 00:01:56,310 vagy [hallható] struct valamit, a vonalak is csak nagyon, nagyon hosszú. 41 00:01:56,310 --> 00:01:59,400 És így használhatja typedef jönni ki valami sokkal rövidebb. 42 00:01:59,400 --> 00:02:04,650 >> Tehát ha én meg egy autó a következők, van én meghatározása car-- struct autó, 43 00:02:04,650 --> 00:02:07,230 majd nyissa kapcsos zárójel, minden A mezők az én struktúra, 44 00:02:07,230 --> 00:02:11,030 szoros kapcsos zárójel, félig colon-- miután már meghatározott adataimat típusú, 45 00:02:11,030 --> 00:02:15,680 Én typedef struct autó autó aláhúzás t. 46 00:02:15,680 --> 00:02:19,670 Aztán amikor ezzel megvagy, most minden Mire lenne képes használni struct 47 00:02:19,670 --> 00:02:22,680 autó, én is csak az autós aláhúzás t. 48 00:02:22,680 --> 00:02:26,480 Ez sokkal rövidebb a módját, hogy kifejezni ezt az elképzelést ennek a szerkezetnek 49 00:02:26,480 --> 00:02:28,530 hogy én csak létre. 50 00:02:28,530 --> 00:02:33,620 >> Alternatív módon, mert szerkezetek annyira általánosan használt typedef, 51 00:02:33,620 --> 00:02:37,980 van egy-- akkor valóban meghatározza a írja be a kezdete és vége. 52 00:02:37,980 --> 00:02:42,020 Tehát a typedef szerkezete ismét Általában typedef, régi név, új nevet, 53 00:02:42,020 --> 00:02:45,360 ahol a nevek már típusok, hogy létrehozta. 54 00:02:45,360 --> 00:02:49,620 De akkor valóban meg egy szerkezetet kellős közepén a typedef 55 00:02:49,620 --> 00:02:51,760 ahelyett, hogy meghatározza ez külön, majd 56 00:02:51,760 --> 00:02:52,990 nem egy typedef belőle. 57 00:02:52,990 --> 00:02:55,780 És hogy nézne mint this-- typedef struct autó, 58 00:02:55,780 --> 00:02:59,957 nyitott zárójel, az összes területen definíciók, közel kapcsos zárójel, autós t. 59 00:02:59,957 --> 00:03:03,290 Tehát a régi név minden ilyesmi a piros, csak most szerkezetét meghatározó 60 00:03:03,290 --> 00:03:05,610 és elnevezése, hogy ugyanabban az időben. 61 00:03:05,610 --> 00:03:07,790 És akkor az új név az autó aláhúzás t. 62 00:03:07,790 --> 00:03:10,150 És így ha elkezdjük használni ez a kód, korábban én 63 00:03:10,150 --> 00:03:13,279 Lehet, hogy azt mondta, struktúra autó mycar pontosvessző. 64 00:03:13,279 --> 00:03:14,820 Hát én nem kell tennie, hogy többé. 65 00:03:14,820 --> 00:03:20,265 Most, hogy én is használtam a typedef, én csak annyit autó aláhúzás t, mycar. 66 00:03:20,265 --> 00:03:22,640 Ez sokkal rövidebb az egy módja csinálni, és valójában ez 67 00:03:22,640 --> 00:03:24,515 lesz sokkal több kényelmes, különösen 68 00:03:24,515 --> 00:03:27,730 elkezdi használni szerkezetek sokkal több a kódban. 69 00:03:27,730 --> 00:03:28,810 >> Én Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Ez CS50. 71 00:03:30,640 --> 00:03:32,415