1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Així que si vostè té vist el nostre vídeo sobre les estructures, 3 00:00:07,220 --> 00:00:10,950 vostè ja sap que tenim la capacitat de definir els nostres propis tipus de dades. 4 00:00:10,950 --> 00:00:14,530 Però si vostè té estructures usades, ja saps que de vegades l'ús d'aquests tipus de dades 5 00:00:14,530 --> 00:00:16,446 en realitat pot ser una mica molest perquè 6 00:00:16,446 --> 00:00:19,210 d'utilitzar la paraula clau struct quan estem treballant amb ells-- 7 00:00:19,210 --> 00:00:21,257 struct cotxe o struct estudiant. 8 00:00:21,257 --> 00:00:23,090 Això és un munt d'escriure si només vull tenir 9 00:00:23,090 --> 00:00:24,830 alguna cosa simple, com una estructura. 10 00:00:24,830 --> 00:00:26,390 Volem tener-- volem ser capaç de treballar amb les coses 11 00:00:26,390 --> 00:00:29,350 una mica més taquigrafia, com int o char, alguna cosa molt 12 00:00:29,350 --> 00:00:31,240 més còmode per escriure. 13 00:00:31,240 --> 00:00:33,100 >> Afortunadament, hi ha una manera de fer això en C, 14 00:00:33,100 --> 00:00:37,150 amb una cosa anomenada typedef, que és una manera de crear taquigrafia o reescrit 15 00:00:37,150 --> 00:00:38,640 noms per als tipus de dades. 16 00:00:38,640 --> 00:00:40,720 Podeu tornar a escriure les dades tipus que ja existeixen, 17 00:00:40,720 --> 00:00:43,970 o pot escriure tipus de dades del seu compte. 18 00:00:43,970 --> 00:00:46,890 >> La primera cosa que fer que és definir un tipus de la forma habitual, 19 00:00:46,890 --> 00:00:52,271 i llavors només un àlies a alguna cosa else-- typedef nom antic nom nou. 20 00:00:52,271 --> 00:00:53,520 Bastant senzill, oi? 21 00:00:53,520 --> 00:00:56,240 Així que podríem typedef per exemple, les dades ja existents 22 00:00:56,240 --> 00:01:00,266 tipus de unsigned char com byte. 23 00:01:00,266 --> 00:01:03,140 I després, a partir d'ara, després que hem va fer aquest tipus definition-- de nou, 24 00:01:03,140 --> 00:01:07,570 que és en general va ser a la part superior dels nostres arxius punt C, oa un arxiu H dot 25 00:01:07,570 --> 00:01:10,590 per separat, podem simplement utilitzi mossegar tot arreu 26 00:01:10,590 --> 00:01:12,180 hauríem utilitzat unsigned char. 27 00:01:12,180 --> 00:01:14,300 Això és molt més curt que escriure. 28 00:01:14,300 --> 00:01:19,280 >> A la biblioteca del CS50, fem esto-- ens typedef estrelles Char com a cadena. 29 00:01:19,280 --> 00:01:21,400 A causa de que van resumir lluny la idea de punters. 30 00:01:21,400 --> 00:01:25,072 I el fet que una cadena és realment un punter a la primera character-- 31 00:01:25,072 --> 00:01:26,780 una gran varietat de personatges, perquè és només 32 00:01:26,780 --> 00:01:29,863 tan confús per aconseguir el seu cap al voltant que-- però de fet això és el que fem. 33 00:01:29,863 --> 00:01:35,140 I aquesta línia de codi realment existeix en la cadena estrella carbó CS50 punt H typedef, 34 00:01:35,140 --> 00:01:39,021 només per fer que una mica menys molest haver de tractar. 35 00:01:39,021 --> 00:01:41,520 Ja has vist probablament un mica de valor aquí, 36 00:01:41,520 --> 00:01:44,160 però typedef es converteix en un gran quan es combina amb estructures, 37 00:01:44,160 --> 00:01:45,780 com he al·ludit abans. 38 00:01:45,780 --> 00:01:48,550 Estructures tenen un nom de tipus de dues paraules. 39 00:01:48,550 --> 00:01:52,020 I perquè puguin ser realment molest per crear les variables d'aquest tipus, 40 00:01:52,020 --> 00:01:56,310 o [inaudible] d'estructura alguna cosa, la seva línies només poden aconseguir molt, molt llarga. 41 00:01:56,310 --> 00:01:59,400 I perquè pugui utilitzar typedef per venir amb alguna cosa molt més curt. 42 00:01:59,400 --> 00:02:04,650 >> Així que si jo defineixo un cotxe de la següent manera, tinc la meva definició d'una estructura auto car--, 43 00:02:04,650 --> 00:02:07,230 i després obrir claudàtor, tot els camps de la meva estructura, 44 00:02:07,230 --> 00:02:11,030 tancament claudàtor, semi-colon-- després que jo he definit el meu tipus de dades, 45 00:02:11,030 --> 00:02:15,680 Puc typedef struct cotxe com subratllat cotxe t. 46 00:02:15,680 --> 00:02:19,670 I després, quan ho he fet, ara cada struct temps hauria utilitzat d'una altra manera 47 00:02:19,670 --> 00:02:22,680 cotxe, pot simplement usar cotxe subratllat t. 48 00:02:22,680 --> 00:02:26,480 Això és molt més curta de la manera de expressar aquesta idea d'aquesta estructura 49 00:02:26,480 --> 00:02:28,530 que acabo de crear. 50 00:02:28,530 --> 00:02:33,620 >> Alternativament, perquè les estructures estan tan d'ús comú en typedef, 51 00:02:33,620 --> 00:02:37,980 hi ha A-- en realitat es pot definir el escrigui entre l'inici i la fi. 52 00:02:37,980 --> 00:02:42,020 Així que l'estructura és de nou typedef generalment typedef, nom antic, nou nom, 53 00:02:42,020 --> 00:02:45,360 on els noms són ja tipus que ha creat. 54 00:02:45,360 --> 00:02:49,620 Però en realitat es pot definir una estructura al bell mig de la typedef 55 00:02:49,620 --> 00:02:51,760 en lloc d'haver de definir per separat, i després 56 00:02:51,760 --> 00:02:52,990 fer un typedef de la mateixa. 57 00:02:52,990 --> 00:02:55,780 I això mateix aspecte que esto-- struct cotxe typedef, 58 00:02:55,780 --> 00:02:59,957 clau d'obertura, tots els del seu camp definicions, tancament claudàtor, cotxe t. 59 00:02:59,957 --> 00:03:03,290 Així que el nom antic és totes aquestes coses al vermell, vostè està definint l'estructura 60 00:03:03,290 --> 00:03:05,610 i nomenant al mateix temps. 61 00:03:05,610 --> 00:03:07,790 I a continuació, el nou nom és subratllat cotxe t. 62 00:03:07,790 --> 00:03:10,150 I així, si comencem a utilitzar aquesta en el codi, prèviament em 63 00:03:10,150 --> 00:03:13,279 podria haver dit: struct cotxe mycar punt i coma. 64 00:03:13,279 --> 00:03:14,820 Bé, jo no he de fer això mai més. 65 00:03:14,820 --> 00:03:20,265 Ara que he utilitzat el typedef, I només puc dir subratllat cotxe t, mycar. 66 00:03:20,265 --> 00:03:22,640 Això és molt més curta d'una manera per fer-ho, i de fet, és 67 00:03:22,640 --> 00:03:24,515 serà molt més convenient, especialment 68 00:03:24,515 --> 00:03:27,730 com començar a utilitzar les estructures molt més en el seu codi. 69 00:03:27,730 --> 00:03:28,810 >> Sóc Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Això és CS50. 71 00:03:30,640 --> 00:03:32,415