1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Así que si usted tiene visto nuestro vídeo sobre las estructuras, 3 00:00:07,220 --> 00:00:10,950 usted ya sabe que tenemos la capacidad de definir nuestros propios tipos de datos. 4 00:00:10,950 --> 00:00:14,530 Pero si usted tiene estructuras usadas, ya sabes que a veces el uso de esos tipos de datos 5 00:00:14,530 --> 00:00:16,446 en realidad puede ser un poco engorroso porque 6 00:00:16,446 --> 00:00:19,210 que utilizar la palabra clave struct cuando estamos trabajando con ellos-- 7 00:00:19,210 --> 00:00:21,257 struct coche o struct estudiante. 8 00:00:21,257 --> 00:00:23,090 Eso es un montón de escribir si sólo quiero tener 9 00:00:23,090 --> 00:00:24,830 algo simple, como una estructura. 10 00:00:24,830 --> 00:00:26,390 Queremos tener-- queremos ser capaz de trabajar con las cosas 11 00:00:26,390 --> 00:00:29,350 un poco más taquigrafía, como int o char, algo mucho 12 00:00:29,350 --> 00:00:31,240 más cómodo para escribir. 13 00:00:31,240 --> 00:00:33,100 >> Afortunadamente, hay una manera de hacer esto en C, 14 00:00:33,100 --> 00:00:37,150 con algo llamado typedef, que es una manera de crear taquigrafía o reescrito 15 00:00:37,150 --> 00:00:38,640 nombres para los tipos de datos. 16 00:00:38,640 --> 00:00:40,720 Puede volver a escribir los datos tipos que ya existen, 17 00:00:40,720 --> 00:00:43,970 o puede escribir tipos de datos de su cuenta. 18 00:00:43,970 --> 00:00:46,890 >> La primera cosa que hacer que es definir un tipo de la forma habitual, 19 00:00:46,890 --> 00:00:52,271 y entonces sólo un alias a algo else-- typedef nombre antiguo nombre nuevo. 20 00:00:52,271 --> 00:00:53,520 Bastante sencillo, ¿verdad? 21 00:00:53,520 --> 00:00:56,240 Así que podríamos typedef por ejemplo, los datos ya existentes 22 00:00:56,240 --> 00:01:00,266 tipo de unsigned char como byte. 23 00:01:00,266 --> 00:01:03,140 Y luego, a partir de ahora, después de que hemos hizo este tipo definition-- de nuevo, 24 00:01:03,140 --> 00:01:07,570 que es por lo general va a ser en la parte superior de nuestros archivos punto C, o en un archivo H dot 25 00:01:07,570 --> 00:01:10,590 por separado, podemos simplemente utilice morder todas partes 26 00:01:10,590 --> 00:01:12,180 habríamos utilizado unsigned char. 27 00:01:12,180 --> 00:01:14,300 Eso es mucho más corto que escribir. 28 00:01:14,300 --> 00:01:19,280 >> En la biblioteca del CS50, hacemos esto-- nos typedef estrellas Char como cadena. 29 00:01:19,280 --> 00:01:21,400 Debido a que resumieron lejos la idea de punteros. 30 00:01:21,400 --> 00:01:25,072 Y el hecho de que una cadena es realmente un puntero a la primera character-- 31 00:01:25,072 --> 00:01:26,780 una gran variedad de personajes, porque es sólo 32 00:01:26,780 --> 00:01:29,863 tan confuso para conseguir su cabeza alrededor que-- pero de hecho eso es lo que hacemos. 33 00:01:29,863 --> 00:01:35,140 Y esta línea de código realmente existe en la cadena estrella carbón CS50 punto H typedef, 34 00:01:35,140 --> 00:01:39,021 sólo para hacer que un poco menos engorroso tener que tratar. 35 00:01:39,021 --> 00:01:41,520 Ya has visto probablemente un poco de valor aquí, 36 00:01:41,520 --> 00:01:44,160 pero typedef se convierte en un gran cuando se combina con estructuras, 37 00:01:44,160 --> 00:01:45,780 como he aludido antes. 38 00:01:45,780 --> 00:01:48,550 Estructuras tienen un nombre de tipo de dos palabras. 39 00:01:48,550 --> 00:01:52,020 Y para que puedan ser realmente molesto para crear las variables de ese tipo, 40 00:01:52,020 --> 00:01:56,310 o [inaudible] de estructura algo, su líneas solo pueden conseguir muy, muy larga. 41 00:01:56,310 --> 00:01:59,400 Y para que pueda utilizar typedef para venir con algo mucho más corto. 42 00:01:59,400 --> 00:02:04,650 >> Así que si yo defino un coche de la siguiente manera, tengo mi definición de una estructura auto car--, 43 00:02:04,650 --> 00:02:07,230 y luego abrir corchete, todo los campos de mi estructura, 44 00:02:07,230 --> 00:02:11,030 cierre corchete, semi-colon-- después de que yo he definido mi tipo de datos, 45 00:02:11,030 --> 00:02:15,680 Puedo typedef struct coche como subrayado coche t. 46 00:02:15,680 --> 00:02:19,670 Y luego, cuando lo he hecho, ahora cada struct tiempo habría utilizado de otra forma 47 00:02:19,670 --> 00:02:22,680 coche, puede simplemente usar coche subrayado t. 48 00:02:22,680 --> 00:02:26,480 Eso es mucho más corta de la manera de expresar esta idea de esta estructura 49 00:02:26,480 --> 00:02:28,530 que acabo de crear. 50 00:02:28,530 --> 00:02:33,620 >> Alternativamente, porque las estructuras están tan de uso común en typedef, 51 00:02:33,620 --> 00:02:37,980 hay A-- en realidad se puede definir el escriba entre el inicio y el fin. 52 00:02:37,980 --> 00:02:42,020 Así que la estructura es de nuevo typedef generalmente typedef, nombre antiguo, nuevo nombre, 53 00:02:42,020 --> 00:02:45,360 donde los nombres son ya tipos que ha creado. 54 00:02:45,360 --> 00:02:49,620 Pero en realidad se puede definir una estructura justo en el medio de la typedef 55 00:02:49,620 --> 00:02:51,760 en lugar de tener que definir por separado, y luego 56 00:02:51,760 --> 00:02:52,990 hacer un typedef de la misma. 57 00:02:52,990 --> 00:02:55,780 Y eso mismo aspecto que esto-- struct coche typedef, 58 00:02:55,780 --> 00:02:59,957 llave de apertura, todos los de su campo definiciones, cierre corchete, coche t. 59 00:02:59,957 --> 00:03:03,290 Así que el nombre antiguo es todas esas cosas en el rojo, usted está definiendo la estructura 60 00:03:03,290 --> 00:03:05,610 y nombrando al mismo tiempo. 61 00:03:05,610 --> 00:03:07,790 Y a continuación, el nuevo nombre es subrayado coche t. 62 00:03:07,790 --> 00:03:10,150 Y así, si empezamos a utilizar esta en el código, previamente me 63 00:03:10,150 --> 00:03:13,279 podría haber dicho: struct coche mycar punto y coma. 64 00:03:13,279 --> 00:03:14,820 Bueno, yo no tengo que hacer eso nunca más. 65 00:03:14,820 --> 00:03:20,265 Ahora que he utilizado el typedef, I solo puedo decir subrayado coche t, mycar. 66 00:03:20,265 --> 00:03:22,640 Eso es mucho más corta de una manera para hacerlo, y de hecho, es 67 00:03:22,640 --> 00:03:24,515 va a ser mucho más conveniente, especialmente 68 00:03:24,515 --> 00:03:27,730 como empezar a utilizar las estructuras mucho más en su código. 69 00:03:27,730 --> 00:03:28,810 >> Soy Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Esto es CS50. 71 00:03:30,640 --> 00:03:32,415