DOUG LLOYD: Quindi, se avete visto il nostro video su strutture, sai già che abbiamo il capacità di definire i nostri tipi di dati. Ma se hai strutture utilizzate, lo sai che a volte l'utilizzo di tali tipi di dati può effettivamente essere un po ' ingombrante perché noi è necessario utilizzare la parola chiave struct quando stiamo lavorando con them-- auto struct o studente struct. Questo è un sacco di digitare se vogliamo solo avere qualcosa di semplice, come una struttura. Vogliamo have-- vogliamo essere in grado di lavorare con le cose un po 'più stenografia, come int o char, qualcosa di molto più comodo da digitare. Per fortuna, c'è un modo per fare questo in C, con qualcosa chiamato typedef, che è un modo per creare stenografia o riscritta nomi per i tipi di dati. È possibile riscrivere i dati tipi che già esistono, o è possibile scrivere i tipi di dati della vostra. La prima cosa da fare è te definire un tipo in modo normale, e poi basta alias di a qualcosa else-- typedef vecchio nome nuovo nome. Abbastanza semplice, giusto? Così potremmo typedef per esempio, i dati già esistenti tipo di unsigned char come byte. E poi, d'ora in poi, dopo che abbiamo fatto questo tipo definition-- di nuovo, che di solito sta per essere al top dei nostri file punto C, o in un file di punti H a parte, possiamo solo utilizzare morso ovunque avremmo usato unsigned char. Questo è molto più breve di digitare. Nella biblioteca di CS50, facciamo questo-- noi typedef stella char come stringa. Perché noi Sottratto via l'idea di puntatori. E il fatto che una stringa è veramente un puntatore al primo character-- un array di caratteri, perché è solo così confusa per ottenere la testa intorno che-- ma in realtà questo è quello che facciamo. E questa riga di codice realmente esiste a stella stringa char CS50 punto H typedef, solo per fare un po 'meno che scomodo dover affrontare. Già avete visto probabilmente un po 'di valore qui, ma typedef diventa grande quando combinato con strutture, come ho accennato in precedenza. Strutture hanno un nome di tipo due parole. E in modo che possano essere davvero fastidioso creare variabili di quel tipo, o [incomprensibile] di struct qualcosa, la tua linee possono solo ottenere molto, molto lungo. E così è possibile utilizzare typedef a venire con qualcosa di molto più breve. Quindi, se io definisco una macchina come segue, ho la mia definizione di una vettura struct car--, e quindi aprire parentesi graffa, tutto campi della mia struttura, chiudere parentesi graffa, semi-colon-- dopo ho definito il mio tipo di dati, Posso typedef struct auto come auto di sottolineatura t. E poi quando l'ho già fatto, ora ogni struct tempo avrei altrimenti utilizzati macchina, posso solo usare auto sottolineatura t. Questo è molto più breve di un modo per esprimere questa idea di questa struttura che ho appena creato. In alternativa, perché le strutture vengono così comunemente utilizzati in typedef, c'è a-- si può effettivamente definire il inserire tra l'inizio e la fine. Quindi la struttura typedef è di nuovo solitamente typedef, vecchio nome, il nuovo nome, dove i nomi sono già tipi che hai creato. Ma in realtà si può definire una struttura proprio nel bel mezzo della typedef invece di dover definire separatamente, e poi fare un typedef di esso. E che sarebbe guardare come questo-- auto struct typedef, parentesi graffa aperta, tutto il vostro campo definizioni, vicino parentesi graffa, auto t. Così il vecchio nome è tutta quella roba in rosso, sei solo la definizione della struttura e chiamandolo allo stesso tempo. E poi il nuovo nome è auto sottolineatura t. E così se cominciamo ad utilizzare questo in codice, precedentemente I avrebbe detto, struct auto MyCar e virgola. Beh io non devo più farlo. Ora che ho usato il typedef, io può solo dire auto sottolineatura t, MyCar. Questo è molto più breve di un modo per farlo, e in effetti, è sta per essere molto più conveniente, soprattutto come si inizia ad utilizzare le strutture molto di più nel codice. Sono Doug Lloyd. Questo è CS50.