DOUG LLOYD: Έτσι, αν έχετε δει το βίντεο μας στις κατασκευές,
γνωρίζετε ήδη ότι έχουμε το δυνατότητα να καθορίσουν τους δικούς μας τύπους δεδομένων.
Αλλά αν έχετε χρησιμοποιήσει δομές, ξέρετε ότι μερικές φορές χρησιμοποιούν αυτούς τους τύπους δεδομένων
μπορεί πραγματικά να είναι μια μικρή δύσκαμπτη, γιατί
Πρέπει να χρησιμοποιήσουμε τη λέξη-κλειδί struct όταν δουλεύουμε με them--
struct αυτοκίνητο ή φοιτητής struct.
Αυτό είναι ένα πολύ να πληκτρολογήσετε αν θέλουμε απλώς να έχουν
κάτι απλό, όπως μια δομή.
Θέλουμε να have-- θέλουμε να να είναι σε θέση να συνεργαστεί με τα πράγματα
λίγο περισσότερο στενογραφίας τρόπο, όπως int ή char, κάτι πολύ
πιο βολικό να πληκτρολογήσετε.
>> Ευτυχώς, υπάρχει ένας τρόπος για να το κάνετε αυτό σε C,
με κάτι που ονομάζεται typedef, η οποία είναι ένας τρόπος για να δημιουργήσετε στενογραφία ή ξαναγραφεί
ονόματα για τους τύπους δεδομένων.
Μπορείτε να ξαναγράψετε δεδομένα είδη που υπάρχουν ήδη,
ή μπορείτε να γράψετε τους τύπους δεδομένων της δικής σας.
>> Το πρώτο πράγμα που θα κάνουμε είναι να σας ορίζουν έναν τύπο με τον κανονικό τρόπο,
και έπειτα απλά το ψευδώνυμο για κάτι else-- typedef παλιό όνομα νέο όνομα.
Αρκετά απλό, έτσι δεν είναι;
Έτσι θα μπορούσαμε να typedef για παράδειγμα, η ήδη υπάρχοντα στοιχεία
τύπου unsigned char της ως byte.
Και στη συνέχεια, από τώρα και στο εξής, αφού έχουμε έκανε αυτός ο τύπος definition-- και πάλι,
το οποίο συνήθως θα είναι στην κορυφή των αρχείων μας dot C, ή σε ένα αρχείο dot Η
χωριστά, μπορούμε μόνο χρησιμοποιούν δαγκώσει παντού
θα είχαμε χρησιμοποιείται unsigned char.
Αυτό είναι ένα πολύ μικρότερο για να πληκτρολογήσετε.
>> Στη βιβλιοθήκη του CS50, κάνουμε this-- εμείς typedef char αστέρων όπως εγχόρδων.
Επειδή αντλείται μακριά η ιδέα της δείκτες.
Και το γεγονός ότι μια συμβολοσειρά είναι πραγματικά ένα δείκτη προς το πρώτο character--
μια σειρά από χαρακτήρες, γιατί είναι απλά
τόσο συγκεχυμένη για να πάρει το κεφάλι σας γύρω από that-- αλλά στην πραγματικότητα αυτό είναι που κάνουμε.
Και αυτή η γραμμή κώδικα υπάρχει στην πραγματικότητα σε CS50 dot Η typedef char εγχόρδων αστέρων,
απλά για να κάνουν ότι λίγο λιγότερο δυσκίνητο για να έχουν να αντιμετωπίσουν.
Ήδη έχετε δει πιθανώς λίγο την τιμή εδώ,
αλλά γίνεται μεγάλη typedef όταν συνδυάζεται με δομές,
όπως προαναφέρθηκε.
Δομές έχουν δύο-λέξη το όνομα του τύπου.
Και έτσι μπορεί να είναι πραγματικά ενοχλητικό για να δημιουργήσετε μεταβλητές αυτού του τύπου,
ή [δεν ακούγεται] του struct κάτι, σας γραμμές μπορεί απλά να πάρει πραγματικά, πραγματικά μεγάλο.
Και έτσι μπορείτε να χρησιμοποιήσετε για να typedef έρθει με κάτι πολύ μικρότερη.
>> Έτσι, αν ορίζω ένα αυτοκίνητο ως εξής, έχω ορισμό μου για μια car-- αυτοκίνητο struct,
και, στη συνέχεια, ανοίξτε σγουρά στήριγμα, όλα τα πεδία της δομής μου,
κοντά σγουρά στήριγμα, ημι-colon-- αφού έχω ορίζεται ο τύπος των δεδομένων μου,
Μπορώ να typedef struct αυτοκίνητο ως υπογράμμισης αυτοκίνητο t.
Και στη συνέχεια, όταν έχω κάνει ότι, τώρα κάθε φορά που θα χρησιμοποιηθεί διαφορετικά struct
αυτοκίνητο, μπορώ να χρησιμοποιήσω μόνο το αυτοκίνητο υπογράμμισης t.
Αυτό είναι πολύ μικρότερη από έναν τρόπο για να εκφράσει αυτή την ιδέα αυτής της δομής
ότι έχω μόλις δημιουργήσατε.
>> Εναλλακτικά, επειδή δομές Τα έτσι χρησιμοποιούνται συνήθως σε typedef,
υπάρχει a-- μπορείτε να ορίσετε στην πραγματικότητα η πληκτρολογήσετε μεταξύ της έναρξης και της λήξης.
Έτσι, η δομή typedef και πάλι είναι typedef συνήθως, παλιό όνομα, νέο όνομα,
όπου τα ονόματα είναι ήδη τύπους που έχετε δημιουργήσει.
Αλλά μπορείτε να ορίσετε πραγματικά μια δομή ακριβώς στη μέση της typedef
αντί να πρέπει να καθορίσει ξεχωριστά, και στη συνέχεια
κάνει μια typedef του.
Και αυτό θα μοιάζει ακριβώς όπως this-- typedef struct αυτοκίνητο,
ανοιχτή σγουρά στήριγμα, όλοι τομέα σας ορισμούς, κοντά σγουρά στήριγμα, το αυτοκίνητο t.
Έτσι, το παλιό όνομα είναι όλα αυτά τα πράγματα στο κόκκινο, είστε ακριβώς που καθορίζουν τη δομή
και ονομάζοντας συγχρόνως.
Και τότε το νέο όνομα είναι υπογράμμισης αυτοκίνητο t.
Και έτσι αν αρχίσετε να χρησιμοποιείτε αυτό τον κωδικό, στο παρελθόν έχω
θα μπορούσε να πει, struct MyCar αυτοκίνητο ερωτηματικό.
Λοιπόν, δεν χρειάζεται να το κάνουμε αυτό πια.
Τώρα που έχω χρησιμοποιήσει το typedef, Ι μπορούμε να πούμε ακριβώς κάτω παύλα αυτοκίνητο t, MyCar.
Αυτό είναι πολύ μικρότερη από έναν τρόπο να το κάνει, και στην πραγματικότητα, είναι
πρόκειται να είναι πολύ πιο βολικό, ειδικά
όπως μπορείτε να αρχίσετε να χρησιμοποιείτε δομές πολύ περισσότερο στον κώδικά σας.
>> Είμαι ο Νταγκ Lloyd.
Αυτό είναι CS50.