1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Έτσι, αν έχετε δει το βίντεο μας στις κατασκευές, 3 00:00:07,220 --> 00:00:10,950 γνωρίζετε ήδη ότι έχουμε το δυνατότητα να καθορίσουν τους δικούς μας τύπους δεδομένων. 4 00:00:10,950 --> 00:00:14,530 Αλλά αν έχετε χρησιμοποιήσει δομές, ξέρετε ότι μερικές φορές χρησιμοποιούν αυτούς τους τύπους δεδομένων 5 00:00:14,530 --> 00:00:16,446 μπορεί πραγματικά να είναι μια μικρή δύσκαμπτη, γιατί 6 00:00:16,446 --> 00:00:19,210 Πρέπει να χρησιμοποιήσουμε τη λέξη-κλειδί struct όταν δουλεύουμε με them-- 7 00:00:19,210 --> 00:00:21,257 struct αυτοκίνητο ή φοιτητής struct. 8 00:00:21,257 --> 00:00:23,090 Αυτό είναι ένα πολύ να πληκτρολογήσετε αν θέλουμε απλώς να έχουν 9 00:00:23,090 --> 00:00:24,830 κάτι απλό, όπως μια δομή. 10 00:00:24,830 --> 00:00:26,390 Θέλουμε να have-- θέλουμε να να είναι σε θέση να συνεργαστεί με τα πράγματα 11 00:00:26,390 --> 00:00:29,350 λίγο περισσότερο στενογραφίας τρόπο, όπως int ή char, κάτι πολύ 12 00:00:29,350 --> 00:00:31,240 πιο βολικό να πληκτρολογήσετε. 13 00:00:31,240 --> 00:00:33,100 >> Ευτυχώς, υπάρχει ένας τρόπος για να το κάνετε αυτό σε C, 14 00:00:33,100 --> 00:00:37,150 με κάτι που ονομάζεται typedef, η οποία είναι ένας τρόπος για να δημιουργήσετε στενογραφία ή ξαναγραφεί 15 00:00:37,150 --> 00:00:38,640 ονόματα για τους τύπους δεδομένων. 16 00:00:38,640 --> 00:00:40,720 Μπορείτε να ξαναγράψετε δεδομένα είδη που υπάρχουν ήδη, 17 00:00:40,720 --> 00:00:43,970 ή μπορείτε να γράψετε τους τύπους δεδομένων της δικής σας. 18 00:00:43,970 --> 00:00:46,890 >> Το πρώτο πράγμα που θα κάνουμε είναι να σας ορίζουν έναν τύπο με τον κανονικό τρόπο, 19 00:00:46,890 --> 00:00:52,271 και έπειτα απλά το ψευδώνυμο για κάτι else-- typedef παλιό όνομα νέο όνομα. 20 00:00:52,271 --> 00:00:53,520 Αρκετά απλό, έτσι δεν είναι; 21 00:00:53,520 --> 00:00:56,240 Έτσι θα μπορούσαμε να typedef για παράδειγμα, η ήδη υπάρχοντα στοιχεία 22 00:00:56,240 --> 00:01:00,266 τύπου unsigned char της ως byte. 23 00:01:00,266 --> 00:01:03,140 Και στη συνέχεια, από τώρα και στο εξής, αφού έχουμε έκανε αυτός ο τύπος definition-- και πάλι, 24 00:01:03,140 --> 00:01:07,570 το οποίο συνήθως θα είναι στην κορυφή των αρχείων μας dot C, ή σε ένα αρχείο dot Η 25 00:01:07,570 --> 00:01:10,590 χωριστά, μπορούμε μόνο χρησιμοποιούν δαγκώσει παντού 26 00:01:10,590 --> 00:01:12,180 θα είχαμε χρησιμοποιείται unsigned char. 27 00:01:12,180 --> 00:01:14,300 Αυτό είναι ένα πολύ μικρότερο για να πληκτρολογήσετε. 28 00:01:14,300 --> 00:01:19,280 >> Στη βιβλιοθήκη του CS50, κάνουμε this-- εμείς typedef char αστέρων όπως εγχόρδων. 29 00:01:19,280 --> 00:01:21,400 Επειδή αντλείται μακριά η ιδέα της δείκτες. 30 00:01:21,400 --> 00:01:25,072 Και το γεγονός ότι μια συμβολοσειρά είναι πραγματικά ένα δείκτη προς το πρώτο character-- 31 00:01:25,072 --> 00:01:26,780 μια σειρά από χαρακτήρες, γιατί είναι απλά 32 00:01:26,780 --> 00:01:29,863 τόσο συγκεχυμένη για να πάρει το κεφάλι σας γύρω από that-- αλλά στην πραγματικότητα αυτό είναι που κάνουμε. 33 00:01:29,863 --> 00:01:35,140 Και αυτή η γραμμή κώδικα υπάρχει στην πραγματικότητα σε CS50 dot Η typedef char εγχόρδων αστέρων, 34 00:01:35,140 --> 00:01:39,021 απλά για να κάνουν ότι λίγο λιγότερο δυσκίνητο για να έχουν να αντιμετωπίσουν. 35 00:01:39,021 --> 00:01:41,520 Ήδη έχετε δει πιθανώς λίγο την τιμή εδώ, 36 00:01:41,520 --> 00:01:44,160 αλλά γίνεται μεγάλη typedef όταν συνδυάζεται με δομές, 37 00:01:44,160 --> 00:01:45,780 όπως προαναφέρθηκε. 38 00:01:45,780 --> 00:01:48,550 Δομές έχουν δύο-λέξη το όνομα του τύπου. 39 00:01:48,550 --> 00:01:52,020 Και έτσι μπορεί να είναι πραγματικά ενοχλητικό για να δημιουργήσετε μεταβλητές αυτού του τύπου, 40 00:01:52,020 --> 00:01:56,310 ή [δεν ακούγεται] του struct κάτι, σας γραμμές μπορεί απλά να πάρει πραγματικά, πραγματικά μεγάλο. 41 00:01:56,310 --> 00:01:59,400 Και έτσι μπορείτε να χρησιμοποιήσετε για να typedef έρθει με κάτι πολύ μικρότερη. 42 00:01:59,400 --> 00:02:04,650 >> Έτσι, αν ορίζω ένα αυτοκίνητο ως εξής, έχω ορισμό μου για μια car-- αυτοκίνητο struct, 43 00:02:04,650 --> 00:02:07,230 και, στη συνέχεια, ανοίξτε σγουρά στήριγμα, όλα τα πεδία της δομής μου, 44 00:02:07,230 --> 00:02:11,030 κοντά σγουρά στήριγμα, ημι-colon-- αφού έχω ορίζεται ο τύπος των δεδομένων μου, 45 00:02:11,030 --> 00:02:15,680 Μπορώ να typedef struct αυτοκίνητο ως υπογράμμισης αυτοκίνητο t. 46 00:02:15,680 --> 00:02:19,670 Και στη συνέχεια, όταν έχω κάνει ότι, τώρα κάθε φορά που θα χρησιμοποιηθεί διαφορετικά struct 47 00:02:19,670 --> 00:02:22,680 αυτοκίνητο, μπορώ να χρησιμοποιήσω μόνο το αυτοκίνητο υπογράμμισης t. 48 00:02:22,680 --> 00:02:26,480 Αυτό είναι πολύ μικρότερη από έναν τρόπο για να εκφράσει αυτή την ιδέα αυτής της δομής 49 00:02:26,480 --> 00:02:28,530 ότι έχω μόλις δημιουργήσατε. 50 00:02:28,530 --> 00:02:33,620 >> Εναλλακτικά, επειδή δομές Τα έτσι χρησιμοποιούνται συνήθως σε typedef, 51 00:02:33,620 --> 00:02:37,980 υπάρχει a-- μπορείτε να ορίσετε στην πραγματικότητα η πληκτρολογήσετε μεταξύ της έναρξης και της λήξης. 52 00:02:37,980 --> 00:02:42,020 Έτσι, η δομή typedef και πάλι είναι typedef συνήθως, παλιό όνομα, νέο όνομα, 53 00:02:42,020 --> 00:02:45,360 όπου τα ονόματα είναι ήδη τύπους που έχετε δημιουργήσει. 54 00:02:45,360 --> 00:02:49,620 Αλλά μπορείτε να ορίσετε πραγματικά μια δομή ακριβώς στη μέση της typedef 55 00:02:49,620 --> 00:02:51,760 αντί να πρέπει να καθορίσει ξεχωριστά, και στη συνέχεια 56 00:02:51,760 --> 00:02:52,990 κάνει μια typedef του. 57 00:02:52,990 --> 00:02:55,780 Και αυτό θα μοιάζει ακριβώς όπως this-- typedef struct αυτοκίνητο, 58 00:02:55,780 --> 00:02:59,957 ανοιχτή σγουρά στήριγμα, όλοι τομέα σας ορισμούς, κοντά σγουρά στήριγμα, το αυτοκίνητο t. 59 00:02:59,957 --> 00:03:03,290 Έτσι, το παλιό όνομα είναι όλα αυτά τα πράγματα στο κόκκινο, είστε ακριβώς που καθορίζουν τη δομή 60 00:03:03,290 --> 00:03:05,610 και ονομάζοντας συγχρόνως. 61 00:03:05,610 --> 00:03:07,790 Και τότε το νέο όνομα είναι υπογράμμισης αυτοκίνητο t. 62 00:03:07,790 --> 00:03:10,150 Και έτσι αν αρχίσετε να χρησιμοποιείτε αυτό τον κωδικό, στο παρελθόν έχω 63 00:03:10,150 --> 00:03:13,279 θα μπορούσε να πει, struct MyCar αυτοκίνητο ερωτηματικό. 64 00:03:13,279 --> 00:03:14,820 Λοιπόν, δεν χρειάζεται να το κάνουμε αυτό πια. 65 00:03:14,820 --> 00:03:20,265 Τώρα που έχω χρησιμοποιήσει το typedef, Ι μπορούμε να πούμε ακριβώς κάτω παύλα αυτοκίνητο t, MyCar. 66 00:03:20,265 --> 00:03:22,640 Αυτό είναι πολύ μικρότερη από έναν τρόπο να το κάνει, και στην πραγματικότητα, είναι 67 00:03:22,640 --> 00:03:24,515 πρόκειται να είναι πολύ πιο βολικό, ειδικά 68 00:03:24,515 --> 00:03:27,730 όπως μπορείτε να αρχίσετε να χρησιμοποιείτε δομές πολύ περισσότερο στον κώδικά σας. 69 00:03:27,730 --> 00:03:28,810 >> Είμαι ο Νταγκ Lloyd. 70 00:03:28,810 --> 00:03:30,640 Αυτό είναι CS50. 71 00:03:30,640 --> 00:03:32,415