DOUG LLOYD: Donc, si vous avez vu notre vidéo sur les structures,
vous savez déjà que nous avons le possibilité de définir nos propres types de données.
Mais si vous avez des structures d'occasion, vous savez que, parfois, l'utilisation de ces types de données
peut effectivement être un peu lourde parce que nous
avoir à utiliser le mot-clé struct lorsque nous travaillons avec eux--
voiture de struct ou struct étudiant.
Cela fait beaucoup de taper si nous voulons juste avoir
quelque chose de simple, comme une structure.
Nous voulons have-- nous voulons être capable de travailler avec des choses
un peu plus de la sténographie, comme int ou char, quelque chose de beaucoup
plus pratique à taper.
>> Heureusement, il ya une façon de le faire en C,
avec quelque chose appelé typedef, qui est un moyen de créer un raccourci ou réécrit
noms des types de données.
Vous pouvez réécrire des données types qui existent déjà,
ou vous pouvez écrire votre propre types de données.
>> La première chose que vous faites est que vous définir un type de la manière normale,
et alors que vous venez alias à quelque chose else-- typedef ancien nom nouveau nom.
Assez simple, non?
Donc, nous pourrions typedef par exemple, les données déjà existantes
type de unsigned char comme octet.
Et puis, à partir de maintenant, après que nous ayons fait ce type definition-- nouveau,
qui est habituellement va être au sommet de nos fichiers de points C, ou dans un fichier de H dot
séparément, nous pouvons simplement utilisez mordre partout
nous aurions utilisé unsigned char.
Cela fait beaucoup plus courte à taper.
>> Dans la bibliothèque de CS50, nous faisons this-- nous Typedef étoiles char comme chaîne.
Parce que nous Abstrait loin l'idée de pointeurs.
Et le fait qu'une chaîne est vraiment un pointeur vers le premier character--
un tableau de caractères, car il est juste
si confus pour obtenir autour de votre tête that-- mais en fait que ce que nous faisons.
Et cette ligne de code existe réellement dans CS50 point H de l'omble la chaîne d'étoiles,
juste pour faire un peu moins que lourdeur d'avoir à traiter avec.
Déjà vous avez vu probablement une peu de la valeur ici,
mais typedef devient grande lorsqu'il est combiné avec des structures,
Comme je le mentionnais plus tôt.
Ouvrages d'art ont un nom de type de deux mots.
Et ils peuvent être très ennuyeux pour créer des variables de ce type,
ou [inaudible] de quelque chose de struct, votre lignes peuvent obtenir juste vraiment, vraiment long.
Et afin que vous puissiez utiliser typedef à venir avec quelque chose de beaucoup plus courte.
>> Donc, si je définis comme suit une voiture, je dois ma définition d'une voiture de struct car--,
puis ouvrez accolade, tout les domaines de ma structure,
accolade étroite, semi-colon-- après que je l'ai défini Mon type de données,
Je peux typedef struct voiture comme voiture de soulignement t.
Et puis quand je l'ai fait, maintenant chaque struct fois que je l'aurais utilisé autrement
voiture, je peux simplement utiliser la voiture de soulignement t.
Cela fait beaucoup plus court d'une façon de exprimer cette idée de cette structure
que je viens de créer.
>> Alternativement, parce que les structures sont si couramment utilisé dans typedef,
il ya a-- vous pouvez réellement définir le saisir entre le début et la fin.
Ainsi, la structure de typedef est à nouveau habituellement typedef, ancien nom, nouveau nom,
où les noms sont déjà types que vous avez créés.
Mais vous pouvez réellement définir une structure en plein milieu de la typedef
au lieu d'avoir à définir séparément, et ensuite
faire un typedef de celui-ci.
Et ce serait ressembler à this-- voiture struct typedef,
accolade ouverte, l'ensemble de votre domaine Définitions, accolade à proximité, voiture t.
Donc, l'ancien nom est tout ça dans le rouge, vous êtes juste définition de la structure
et nommant en même temps.
Et puis le nouveau nom est la voiture de soulignement t.
Et donc, si nous commençons à utiliser ce dans le code, auparavant, je
aurait dit, struct voiture mycar point-virgule.
Eh bien, je ne dois pas faire ça.
Maintenant que je l'ai utilisé le typedef, je peut juste dire voiture soulignement t, mycar.
Cela fait beaucoup plus courte d'une manière de le faire, et en fait, il est
va être beaucoup plus pratique, surtout
que vous commencez à utiliser des structures beaucoup plus dans votre code.
>> Je suis Doug Lloyd.
Ceci est CS50.