DOUG LLOYD: Så om du har sett vår video på strukturer, du redan vet att vi har möjlighet att definiera egna datatyper. Men om du har använt strukturer, vet du att ibland använda dessa datatyper kan faktiskt vara lite besvärlig eftersom vi måste använda struct nyckelordet När vi arbetar med them-- struct bil eller struct student. Det är en hel del att skriva Om vi ​​vill bara ha något enkelt, som en struktur. Vi vill have-- vi vill kunna arbeta med saker lite mer förkortning sätt, som int eller röding, något mycket mer praktiskt att skriva. Lyckligtvis finns det ett sätt att göra detta i C, med något som kallas typedef, som är ett sätt att skapa en förkortning eller skrivas namn för datatyper. Du kan skriva uppgifter typer som redan finns, eller så kan du skriva datatyper i ditt eget. Det första du gör är att du definiera en typ på vanligt sätt, och då du bara alias det till något else-- typedef gamla namnet nytt namn. Ganska enkelt, eller hur? Så vi kunde typedef till exempel, den redan befintliga data typ av unsigned char som byte. Och sedan, från och med nu, när vi har gjort denna typ definition-- igen, som vanligtvis kommer att vara på toppen våra punkt C-filer, eller i en punkt H fil separat, vi kan bara använda bita allt vi skulle ha använt unsigned char. Det är en mycket kortare att skriva. I CS50 bibliotek, gör vi this-- Vi typedef röding stjärna som sträng. Eftersom vi abstraherade bort idén av pekare. Och det faktum att en sträng är verkligen en pekare till den första character-- en array av tecken, eftersom det är bara så förvirrande att få huvudet runt that-- men i själva verket det är vad vi gör. Och här kodraden faktiskt existerar i CS50 dot H typedef röding stjärna sträng, bara för att göra det lite mindre besvärliga att ha att göra med. Redan du har sett förmodligen en lite av värde här, men typedef blir stor när de kombineras med strukturer, som jag nämnt tidigare. Strukturer har en två-ord typnamnet. Och så de kan bli riktigt irriterande att skapa variabler av denna typ, eller [OHÖRBAR] av struct något, din linjer kan bara bli riktigt, riktigt lång. Och så du kan använda typedef att komma upp med något mycket kortare. Så om jag definierar en bil som följer, har jag min definition av en car-- struct bil, och sedan öppna klammerparentes, alla områdena min struktur, nära klammerparentes, halv colon-- efter att jag har definierat min datatyp, Jag kan typedef struct bil som bil streck t. Och sen när jag har gjort det, nu varje tid jag annars skulle ha använt struct bil, jag kan bara använda bilen streck t. Det är en mycket kortare ett sätt att uttrycka denna idé om denna struktur att jag just har skapat. Alternativt, eftersom strukturer är så vanligt förekommande i typedef, det finns en-- du faktiskt kan definiera skriva in mellan början och slut. Så typedef strukturen återigen är vanligtvis typedef, gamla namnet, nytt namn, där namnen är redan typer som du har skapat. Men du kan faktiskt definiera en struktur rätt i mitten av typedef i stället för att behöva definiera det separat, och sedan gör en typedef det. Och det skulle se ut precis som this-- typedef struct bil, öppna klammerparentes, alla ditt område definitioner, nära klammerparentes, bil t. Så det gamla namnet är allt det där i röd, är du bara definierar strukturen och namnge den samtidigt. Och sedan det nya namnet är bil streck t. Och så om vi börjar använda detta i koden, tidigare jag kunde ha sagt, struct bil MyCar semikolon. Tja jag inte behöver göra det längre. Nu när jag har använt typedef, jag kan bara säga bil streck t, MyCar. Det är en mycket kortare på ett sätt att göra det, och i själva verket är det kommer att bli en mycket mer praktiskt, särskilt när du börjar använda strukturer mycket mer i din kod. Jag är Doug Lloyd. Detta är CS50.