DOUG LLOYD: Så hvis du har set vores video på strukturer, du allerede ved, at vi har den evne til at definere vores egne datatyper. Men hvis du har brugt strukturer, du ved at nogle gange bruge disse datatyper kan faktisk være lidt besværlige, fordi vi nødt til at bruge struct søgeord når vi arbejder med them-- struct bil eller struct elev. Det er en masse at skrive hvis vi bare vil have noget simpelt, som en struktur. Vi ønsker at have-- vi ønsker at være i stand til at arbejde med ting lidt mere stenografi måde, ligesom int eller char, noget meget mere bekvemt at skrive. Heldigvis er der en måde at gøre dette i C, med noget, der hedder typedef, som er en måde at skabe stenografi eller omskrevet navne til datatyper. Du kan omskrive data typer, der allerede findes, eller du kan skrive datatyper for din egen. Den første ting du skal gøre er dig definere en type på den normale måde, og så skal du bare aliaser det til noget else-- typedef gamle navn nye navn. Temmelig ligetil, ikke? Så vi kunne typedef for eksempel de allerede eksisterende data type unsigned char som byte. Og så, fra nu af, efter at vi har gjort denne type definition-- igen, som normalt vil være på toppen af vores dot C filer eller i en dot H fil separat, kan vi bare bruge bide overalt vi ville have brugt unsigned char. Det er en meget kortere at skrive. I CS50 bibliotek, vi gør denne-- Vi typedef char stjerne som streng. Fordi vi abstraheret væk ideen om pointere. Og det faktum, at en streng er virkelig en pointer til den første character-- et array af tegn, fordi det er bare så forvirrende at få dit hoved omkring at-- men i virkeligheden det er hvad vi gør. Og denne linje kode rent faktisk eksisterer i CS50 dot H typedef char stjerne streng, bare for at gøre, at lidt mindre besværlige at skulle beskæftige sig med. Allerede du har set sandsynligvis en lille smule af værdien her, men typedef bliver stor når de kombineres med strukturer, som jeg hentydet til tidligere. Strukturer har en to-ordtype navn. Og så de kan være virkelig irriterende at skabe variable af denne type, eller [uhørligt] af struct noget, din linjer kan bare få rigtig, rigtig længe. Og så du kan bruge typedef til at komme op med noget meget kortere. Så hvis jeg definerer en bil som følger, jeg har min definition af en car-- struct bil, og derefter åbne krøllet tandbøjle, alle områderne min struktur, tæt krøllet bandage, semi-colon-- efter at jeg har defineret min datatype, Jeg kan typedef struct bil som bil understregning t. Og så når jeg har gjort det, nu hver gang jeg ellers ville have brugt struct bil, kan jeg bare bruge bilen understregning t. Det er en meget kortere på en måde at udtrykke denne idé om denne struktur at jeg lige har oprettet. Alternativt fordi strukturer er så almindeligt anvendt i typedef, der er en-- du rent faktisk kan definere skrive i mellem starten og slutningen. Så typedef struktur igen er normalt typedef, gamle navn, nyt navn, hvor navnene er allerede typer, som du har oprettet. Men du kan faktisk definere en struktur lige i midten af ​​typedef i stedet for at definere det separat, og derefter gør en typedef af det. Og det ville se ligesom her-- typedef struct bil, åben krøllet klammeparentes, alle dine felt definitioner, luk krøllet tandbøjle, bil t. Så det gamle navn er alt det i rød, er du bare definere strukturen og navngive den på samme tid. Og så det nye navn er bil understregning t. Og så hvis vi begynder at bruge dette i kode, der tidligere jeg kunne have sagt, struct bil MyCar semikolon. Jamen jeg behøver ikke at gøre det længere. Nu, hvor jeg har brugt typedef, jeg kan bare sige bil understregning t, MyCar. Det er en meget kortere for en måde at gøre det, og i virkeligheden er det kommer til at være en meget mere praktisk, især som du begynder at bruge strukturer meget mere i din kode. Jeg er Doug Lloyd. Det er CS50.