1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Donc, si vous avez vu notre vidéo sur les structures, 3 00:00:07,220 --> 00:00:10,950 vous savez déjà que nous avons le possibilité de définir nos propres types de données. 4 00:00:10,950 --> 00:00:14,530 Mais si vous avez des structures d'occasion, vous savez que, parfois, l'utilisation de ces types de données 5 00:00:14,530 --> 00:00:16,446 peut effectivement être un peu lourde parce que nous 6 00:00:16,446 --> 00:00:19,210 avoir à utiliser le mot-clé struct lorsque nous travaillons avec eux-- 7 00:00:19,210 --> 00:00:21,257 voiture de struct ou struct étudiant. 8 00:00:21,257 --> 00:00:23,090 Cela fait beaucoup de taper si nous voulons juste avoir 9 00:00:23,090 --> 00:00:24,830 quelque chose de simple, comme une structure. 10 00:00:24,830 --> 00:00:26,390 Nous voulons have-- nous voulons être capable de travailler avec des choses 11 00:00:26,390 --> 00:00:29,350 un peu plus de la sténographie, comme int ou char, quelque chose de beaucoup 12 00:00:29,350 --> 00:00:31,240 plus pratique à taper. 13 00:00:31,240 --> 00:00:33,100 >> Heureusement, il ya une façon de le faire en C, 14 00:00:33,100 --> 00:00:37,150 avec quelque chose appelé typedef, qui est un moyen de créer un raccourci ou réécrit 15 00:00:37,150 --> 00:00:38,640 noms des types de données. 16 00:00:38,640 --> 00:00:40,720 Vous pouvez réécrire des données types qui existent déjà, 17 00:00:40,720 --> 00:00:43,970 ou vous pouvez écrire votre propre types de données. 18 00:00:43,970 --> 00:00:46,890 >> La première chose que vous faites est que vous définir un type de la manière normale, 19 00:00:46,890 --> 00:00:52,271 et alors que vous venez alias à quelque chose else-- typedef ancien nom nouveau nom. 20 00:00:52,271 --> 00:00:53,520 Assez simple, non? 21 00:00:53,520 --> 00:00:56,240 Donc, nous pourrions typedef par exemple, les données déjà existantes 22 00:00:56,240 --> 00:01:00,266 type de unsigned char comme octet. 23 00:01:00,266 --> 00:01:03,140 Et puis, à partir de maintenant, après que nous ayons fait ce type definition-- nouveau, 24 00:01:03,140 --> 00:01:07,570 qui est habituellement va être au sommet de nos fichiers de points C, ou dans un fichier de H dot 25 00:01:07,570 --> 00:01:10,590 séparément, nous pouvons simplement utilisez mordre partout 26 00:01:10,590 --> 00:01:12,180 nous aurions utilisé unsigned char. 27 00:01:12,180 --> 00:01:14,300 Cela fait beaucoup plus courte à taper. 28 00:01:14,300 --> 00:01:19,280 >> Dans la bibliothèque de CS50, nous faisons this-- nous Typedef étoiles char comme chaîne. 29 00:01:19,280 --> 00:01:21,400 Parce que nous Abstrait loin l'idée de pointeurs. 30 00:01:21,400 --> 00:01:25,072 Et le fait qu'une chaîne est vraiment un pointeur vers le premier character-- 31 00:01:25,072 --> 00:01:26,780 un tableau de caractères, car il est juste 32 00:01:26,780 --> 00:01:29,863 si confus pour obtenir autour de votre tête that-- mais en fait que ce que nous faisons. 33 00:01:29,863 --> 00:01:35,140 Et cette ligne de code existe réellement dans CS50 point H de l'omble la chaîne d'étoiles, 34 00:01:35,140 --> 00:01:39,021 juste pour faire un peu moins que lourdeur d'avoir à traiter avec. 35 00:01:39,021 --> 00:01:41,520 Déjà vous avez vu probablement une peu de la valeur ici, 36 00:01:41,520 --> 00:01:44,160 mais typedef devient grande lorsqu'il est combiné avec des structures, 37 00:01:44,160 --> 00:01:45,780 Comme je le mentionnais plus tôt. 38 00:01:45,780 --> 00:01:48,550 Ouvrages d'art ont un nom de type de deux mots. 39 00:01:48,550 --> 00:01:52,020 Et ils peuvent être très ennuyeux pour créer des variables de ce type, 40 00:01:52,020 --> 00:01:56,310 ou [inaudible] de quelque chose de struct, votre lignes peuvent obtenir juste vraiment, vraiment long. 41 00:01:56,310 --> 00:01:59,400 Et afin que vous puissiez utiliser typedef à venir avec quelque chose de beaucoup plus courte. 42 00:01:59,400 --> 00:02:04,650 >> Donc, si je définis comme suit une voiture, je dois ma définition d'une voiture de struct car--, 43 00:02:04,650 --> 00:02:07,230 puis ouvrez accolade, tout les domaines de ma structure, 44 00:02:07,230 --> 00:02:11,030 accolade étroite, semi-colon-- après que je l'ai défini Mon type de données, 45 00:02:11,030 --> 00:02:15,680 Je peux typedef struct voiture comme voiture de soulignement t. 46 00:02:15,680 --> 00:02:19,670 Et puis quand je l'ai fait, maintenant chaque struct fois que je l'aurais utilisé autrement 47 00:02:19,670 --> 00:02:22,680 voiture, je peux simplement utiliser la voiture de soulignement t. 48 00:02:22,680 --> 00:02:26,480 Cela fait beaucoup plus court d'une façon de exprimer cette idée de cette structure 49 00:02:26,480 --> 00:02:28,530 que je viens de créer. 50 00:02:28,530 --> 00:02:33,620 >> Alternativement, parce que les structures sont si couramment utilisé dans typedef, 51 00:02:33,620 --> 00:02:37,980 il ya a-- vous pouvez réellement définir le saisir entre le début et la fin. 52 00:02:37,980 --> 00:02:42,020 Ainsi, la structure de typedef est à nouveau habituellement typedef, ancien nom, nouveau nom, 53 00:02:42,020 --> 00:02:45,360 où les noms sont déjà types que vous avez créés. 54 00:02:45,360 --> 00:02:49,620 Mais vous pouvez réellement définir une structure en plein milieu de la typedef 55 00:02:49,620 --> 00:02:51,760 au lieu d'avoir à définir séparément, et ensuite 56 00:02:51,760 --> 00:02:52,990 faire un typedef de celui-ci. 57 00:02:52,990 --> 00:02:55,780 Et ce serait ressembler à this-- voiture struct typedef, 58 00:02:55,780 --> 00:02:59,957 accolade ouverte, l'ensemble de votre domaine Définitions, accolade à proximité, voiture t. 59 00:02:59,957 --> 00:03:03,290 Donc, l'ancien nom est tout ça dans le rouge, vous êtes juste définition de la structure 60 00:03:03,290 --> 00:03:05,610 et nommant en même temps. 61 00:03:05,610 --> 00:03:07,790 Et puis le nouveau nom est la voiture de soulignement t. 62 00:03:07,790 --> 00:03:10,150 Et donc, si nous commençons à utiliser ce dans le code, auparavant, je 63 00:03:10,150 --> 00:03:13,279 aurait dit, struct voiture mycar point-virgule. 64 00:03:13,279 --> 00:03:14,820 Eh bien, je ne dois pas faire ça. 65 00:03:14,820 --> 00:03:20,265 Maintenant que je l'ai utilisé le typedef, je peut juste dire voiture soulignement t, mycar. 66 00:03:20,265 --> 00:03:22,640 Cela fait beaucoup plus courte d'une manière de le faire, et en fait, il est 67 00:03:22,640 --> 00:03:24,515 va être beaucoup plus pratique, surtout 68 00:03:24,515 --> 00:03:27,730 que vous commencez à utiliser des structures beaucoup plus dans votre code. 69 00:03:27,730 --> 00:03:28,810 >> Je suis Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Ceci est CS50. 71 00:03:30,640 --> 00:03:32,415