1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE HARDISON: Στον προγραμματισμό, μια βιβλιοθήκη είναι μια συλλογή από 2 00:00:09,470 --> 00:00:11,380 που σχετίζονται με prewritten κώδικα. 3 00:00:11,380 --> 00:00:14,350 Οι βιβλιοθήκες είναι πώς εμείς, ως προγραμματιστές, μοιράζονται κοινά και 4 00:00:14,350 --> 00:00:16,930 χρήσιμη κώδικα με το άλλο, με τα διάφορα προγράμματα έχουμε 5 00:00:16,930 --> 00:00:19,470 γράψει, ακόμα και με τις διαφορετικές διαδικασίες που τρέχουν σε 6 00:00:19,470 --> 00:00:21,380 Την ίδια στιγμή στους υπολογιστές μας. 7 00:00:21,380 --> 00:00:23,000 >> Ας εξετάσουμε λίγο. 8 00:00:23,000 --> 00:00:25,070 Μία από τις πιο κοινές λειτουργίες που έχετε πιθανώς 9 00:00:25,070 --> 00:00:27,500 χρησιμοποιούν είναι η printf λειτουργία. 10 00:00:27,500 --> 00:00:29,820 Τώρα, printf δεν είναι κάποια μαγική λειτουργία που είναι ήδη 11 00:00:29,820 --> 00:00:31,670 σκληρό κωδικοποιούνται στον υπολογιστή - 12 00:00:31,670 --> 00:00:34,320 μάλλον, είναι μέρος των C Βιβλιοθηκών Standard, τα οποία είναι 13 00:00:34,320 --> 00:00:36,080 μια συλλογή από λειτουργίες που έρχεται με το 14 00:00:36,080 --> 00:00:38,050 C γλώσσα προγραμματισμού. 15 00:00:38,050 --> 00:00:40,920 Δεδομένου ότι η printf δεν είναι ενσωματωμένη στον υπολογιστή, αυτό σημαίνει ότι 16 00:00:40,920 --> 00:00:43,520 υπήρξε κάποια προγραμματιστής που πραγματικά πήγε και έγραψε το 17 00:00:43,520 --> 00:00:46,310 printf συνδυασμένη λειτουργία και με τον υπόλοιπο του προτύπου 18 00:00:46,310 --> 00:00:48,880 βιβλιοθήκες, έτσι ώστε μελλοντικά οι προγραμματιστές δεν θα πρέπει να 19 00:00:48,880 --> 00:00:50,310 διπλούν την προσπάθεια. 20 00:00:50,310 --> 00:00:52,620 Και είμαστε σίγουροι ευγνώμων που αυτή είναι η περίπτωση, επειδή ελέγχει 21 00:00:52,620 --> 00:00:54,710 πόσο κώδικα που χρειάζεται πραγματικά να εφαρμόσει printf. 22 00:00:59,590 --> 00:01:02,860 >> Τα C Βιβλιοθήκες Πρότυπο, εκ των οποίων printf είναι μέρος, είναι 23 00:01:02,860 --> 00:01:04,480 ένα από τα πιο σημαντικά εργαλεία που 24 00:01:04,480 --> 00:01:06,770 έχουν στην αντιμετώπιση CS50. 25 00:01:06,770 --> 00:01:08,780 Εκτός από την βιβλιοθήκη εισόδου-εξόδου, όπου 26 00:01:08,780 --> 00:01:11,370 printf ζωή, υπάρχουν ένα σωρό άλλες βιβλιοθήκες που 27 00:01:11,370 --> 00:01:14,230 κατά πάσα πιθανότητα θα χρησιμοποιήσει κατά τη διάρκεια του CS50. 28 00:01:14,230 --> 00:01:16,730 Για παράδειγμα, η βιβλιοθήκη συμβολοσειρά έχει λειτουργίες για 29 00:01:16,730 --> 00:01:20,960 συγκρίνουν C χορδές, να πάρει το μήκος τους, και να τους ενώσετε. 30 00:01:20,960 --> 00:01:22,410 Και η βιβλιοθήκη math σας δίνει χρήσιμες 31 00:01:22,410 --> 00:01:25,062 σταθερές, όπως το π και e. 32 00:01:25,062 --> 00:01:27,650 Τώρα, σε σύγκριση με τις τυποποιημένες βιβλιοθήκες άλλων προγραμματισμού 33 00:01:27,650 --> 00:01:31,190 γλώσσες, οι βιβλιοθήκες C Πρότυπο είναι πολύ μικρό, 34 00:01:31,190 --> 00:01:34,060 αλλά εξακολουθούν να έχουν ένα σημαντικό ποσό από τα πράγματα. 35 00:01:34,060 --> 00:01:36,370 Και αυτό δεν σημαίνει ότι οι βιβλιοθήκες πρότυπο είναι το 36 00:01:36,370 --> 00:01:39,020 μόνο βιβλιοθήκες C? υπάρχουν πολλά περισσότερα εκεί έξω στο 37 00:01:39,020 --> 00:01:42,460 κόσμο για να το χρησιμοποιήσετε, συμπεριλαμβανομένου του CS50 Βιβλιοθήκη, 38 00:01:42,460 --> 00:01:45,150 βιβλιοθήκες χαρτογραφίας με κρυπτογράφηση και την αποκρυπτογράφηση 39 00:01:45,150 --> 00:01:48,000 λειτουργίες, οι βιβλιοθήκες με τις λειτουργίες για την κωδικοποίηση και 40 00:01:48,000 --> 00:01:50,970 αναπαραγωγή βίντεο, και ούτω καθεξής. 41 00:01:50,970 --> 00:01:53,190 >> Αυτό μας φέρνει σε ένα σημαντικό μέρος. 42 00:01:53,190 --> 00:01:55,500 Μία από τις βασικές δεξιότητες της μηχανικής είναι η γνώση 43 00:01:55,500 --> 00:01:58,090 διαθέσιμα εργαλεία στην εργαλειοθήκη σας, ώστε να μπορείτε να χρησιμοποιήσετε 44 00:01:58,090 --> 00:01:59,850 τους και να μην ανακαλύπτουμε τον τροχό εκτός 45 00:01:59,850 --> 00:02:01,510 θα πρέπει να το πράξουν. 46 00:02:01,510 --> 00:02:04,120 Ως προγραμματιστές, οι βιβλιοθήκες είναι ένα από τα πιο σημαντικά 47 00:02:04,120 --> 00:02:05,520 εργαλεία που έχουμε. 48 00:02:05,520 --> 00:02:08,520 Όταν βρείτε τον εαυτό σας που αντιμετωπίζει ένα έργο που μοιάζει κουραστική ή 49 00:02:08,520 --> 00:02:11,940 κοινός τόπος, όπως την εύρεση το μήκος μιας συμβολοσειράς C, που 50 00:02:11,940 --> 00:02:14,020 θα πρέπει να ρωτήσετε τον εαυτό σας, αν θα μπορούσε να είναι η περίπτωση που 51 00:02:14,020 --> 00:02:16,520 κάποιος έχει κάνει ήδη το ίδιο πράγμα πριν. 52 00:02:16,520 --> 00:02:17,760 Οι πιθανότητες είναι ότι θα μπορούσατε να βρείτε κάποια 53 00:02:17,760 --> 00:02:20,110 βοηθήσουν σε μια βιβλιοθήκη. 54 00:02:20,110 --> 00:02:23,260 >> Έτσι, από τεχνική άποψη, μια βιβλιοθήκη είναι ένα δυαδικό αρχείο που 55 00:02:23,260 --> 00:02:26,210 έχει παραχθεί με σύνδεση μαζί μια συλλογή των 56 00:02:26,210 --> 00:02:28,880 αρχεία αντικειμένου χρησιμοποιώντας ένα εργαλείο που ονομάζεται, θα 57 00:02:28,880 --> 00:02:31,010 μαντέψατε, ο σύνδεσμος. 58 00:02:31,010 --> 00:02:33,830 Αντικείμενο αρχεία είναι αυτά. O αρχεία που παίρνετε όταν 59 00:02:33,830 --> 00:02:35,860 καταρτίζουν C πηγαίο κώδικα. 60 00:02:35,860 --> 00:02:38,420 Όταν οι προγραμματιστές γράφουν βιβλιοθήκες, που κατά κανόνα 61 00:02:38,420 --> 00:02:41,560 διαχωρισμό C κωδικό τους σε δύο τύπους αρχείων: 62 00:02:41,560 --> 00:02:44,880 header αρχεία και τα αρχεία της εφαρμογής. 63 00:02:44,880 --> 00:02:49,820 Ένα αρχείο κεφαλίδας με σύμβαση δίνεται η επέκταση αρχείου. H, 64 00:02:49,820 --> 00:02:51,940 και περιέχει κώδικα που δηλώνει τη βιβλιοθήκη του 65 00:02:51,940 --> 00:02:55,120 πόροι που είναι διαθέσιμοι για να το χρησιμοποιήσετε. 66 00:02:55,120 --> 00:02:58,830 Οι πόροι αυτοί περιλαμβάνουν λειτουργίες, μεταβλητές, structs, 67 00:02:58,830 --> 00:03:01,980 ορισμούς του τύπου, και ούτω καθεξής, και μαζί, είναι 68 00:03:01,980 --> 00:03:04,620 κοινώς αναφέρεται ως διεπαφή. 69 00:03:04,620 --> 00:03:07,280 Στην πραγματικότητα, εάν είστε πάντα αναρωτιούνται τι είναι σε μια βιβλιοθήκη, 70 00:03:07,280 --> 00:03:09,580 τα αρχεία κεφαλίδας είναι το μέρος για να δούμε. 71 00:03:09,580 --> 00:03:14,030 >> Για παράδειγμα, μπορείτε να τραβήξετε μέχρι usr / include / stdio.h και ελέγξτε 72 00:03:14,030 --> 00:03:16,210 από όλα όσα θέλετε να ξέρετε για 73 00:03:16,210 --> 00:03:18,570 η πρότυπη βιβλιοθήκη io. 74 00:03:18,570 --> 00:03:20,610 Υπάρχουν πολλά πράγματα εδώ, και μπορεί να πάρει ένα κομμάτι της 75 00:03:20,610 --> 00:03:22,420 χρόνο για να εντρυφήσω μέσω. 76 00:03:22,420 --> 00:03:25,840 Ωστόσο, μαζί με τις Google και manpages, αυτή είναι η 77 00:03:25,840 --> 00:03:28,060 θέση για να πάει εάν αναρωτιέστε πώς το πρότυπο I / O 78 00:03:28,060 --> 00:03:30,460 λειτουργίες της βιβλιοθήκης λειτουργεί. 79 00:03:30,460 --> 00:03:33,910 Έτσι, ένα βασικό πράγμα που πρέπει να σημειωθεί εδώ, όμως, είναι ότι τα αρχεία κεφαλίδας 80 00:03:33,910 --> 00:03:36,740 συνήθως δεν περιλαμβάνουν τους ορισμούς των συναρτήσεων - 81 00:03:36,740 --> 00:03:40,020 δηλαδή, οι πραγματικές υλοποιήσεις λειτουργίας. 82 00:03:40,020 --> 00:03:42,470 Αυτό είναι μία απεικόνιση μιας σημαντικής επιστήμης των υπολογιστών 83 00:03:42,470 --> 00:03:45,700 αρχή που ονομάζεται απόκρυψη πληροφοριών, αναφέρεται επίσης σε 84 00:03:45,700 --> 00:03:48,960 φορές ως ενθυλάκωση. 85 00:03:48,960 --> 00:03:52,630 >> Καθώς ο χρήστης ή ο πελάτης του μια βιβλιοθήκη, δεν χρειάζεται να 86 00:03:52,630 --> 00:03:54,230 γνωρίζουν τα εσωτερικά της βιβλιοθήκης σε 87 00:03:54,230 --> 00:03:55,380 προκειμένου να το χρησιμοποιήσει. 88 00:03:55,380 --> 00:03:57,800 Θυμηθείτε να δει printf μόλις λίγο πριν; 89 00:03:57,800 --> 00:04:00,275 Αν έχετε δει ποτέ το πραγματικό κωδικό πριν; 90 00:04:00,275 --> 00:04:02,535 Καλά, υποθέτω ότι δεν έχετε, ακόμα κι αν θα μπορούσε 91 00:04:02,535 --> 00:04:05,090 έχουν χρησιμοποιηθεί printf τόνους φορές. 92 00:04:05,090 --> 00:04:08,110 Όλα όσα έπρεπε να μάθω ήταν η σημερινή δήλωση της συνάρτησης 93 00:04:08,110 --> 00:04:10,940 stdio.h στο αρχείο κεφαλίδας. 94 00:04:10,940 --> 00:04:14,010 Εν πάση περιπτώσει, το όφελος της καλής απόκρυψη πληροφοριών είναι ότι μπορείτε 95 00:04:14,010 --> 00:04:16,820 και τα προγράμματα που γράφετε μόνωση από τυχόν αλλαγές σε 96 00:04:16,820 --> 00:04:20,209 ο κωδικός της εφαρμογής των λειτουργιών της βιβλιοθήκης. 97 00:04:20,209 --> 00:04:22,880 Εάν η εφαρμογή της printf αλλαγές, δεν έχετε 98 00:04:22,880 --> 00:04:26,310 για να πάει και να αλλάξετε όλα τα προγράμματά σας που χρησιμοποιούν printf. 99 00:04:26,310 --> 00:04:28,450 >> Έτσι, όταν κάνει την εφαρμογή πάτε; 100 00:04:28,450 --> 00:04:31,020 Λοιπόν, και πάλι, κατά συνθήκη, η υλοποίηση πηγαίνει σε ένα 101 00:04:31,020 --> 00:04:34,310 αρχείο με την επέκταση αρχείου. γ.. 102 00:04:34,310 --> 00:04:36,820 Συνήθως, τα αρχεία και τα αρχεία κεφαλίδας εφαρμογή πάνε χέρι 103 00:04:36,820 --> 00:04:39,380 στο χέρι, οπότε αν έχετε δηλώσει ένα σωρό νέα σειρά 104 00:04:39,380 --> 00:04:42,950 λειτουργίες σε mystring.h, τότε θα καθορίσει όλα 105 00:04:42,950 --> 00:04:46,960 αυτές οι λειτουργίες σε Συμβολοσειρά. c. 106 00:04:46,960 --> 00:04:49,230 Έτσι, στη συνέχεια, τα αρχεία κεφαλίδας και στη συνέχεια την εφαρμογή 107 00:04:49,230 --> 00:04:52,230 καταρτίζονται, τη δημιουργία αρχείων αντικείμενο που στη συνέχεια συνδέονται 108 00:04:52,230 --> 00:04:55,360 μαζί για να παράγουν το δυαδικό αρχείο της βιβλιοθήκης. 109 00:04:55,360 --> 00:04:58,520 Ο συγγραφέας βιβλιοθήκη θα στείλει τότε το δυαδικό αρχείο κατά μήκος 110 00:04:58,520 --> 00:05:00,720 με τα αρχεία κεφαλίδας για προγραμματιστές που θέλουν να χρησιμοποιήσουν 111 00:05:00,720 --> 00:05:02,280 η βιβλιοθήκη. 112 00:05:02,280 --> 00:05:04,640 Σε αυτό το σημείο, τα αρχεία. Εφαρμογής δεν είναι c 113 00:05:04,640 --> 00:05:07,840 απαιτείται, εκτός από τη μεταγλώττιση του βιβλιοθήκη από το μηδέν, έτσι 114 00:05:07,840 --> 00:05:10,270 από όπου και αν συχνά αριστερά έξω. 115 00:05:10,270 --> 00:05:13,670 >> Για να χρησιμοποιήσετε τη βιβλιοθήκη C, θα πρέπει να κάνει δύο πράγματα. 116 00:05:13,670 --> 00:05:16,890 Κατ 'αρχάς, θα πρέπει να περιλαμβάνουν τα αρχεία # κεφαλίδα της βιβλιοθήκης και των 117 00:05:16,890 --> 00:05:18,700 πηγαίο κώδικα όπου θέλετε να χρησιμοποιήσετε 118 00:05:18,700 --> 00:05:20,530 κώδικα της βιβλιοθήκης. 119 00:05:20,530 --> 00:05:23,200 Αυτό πληροφορεί τον compiler όλων των δηλώσεων του 120 00:05:23,200 --> 00:05:26,890 συναρτήσεις, μεταβλητές, structs, κ.λπ., που υπάρχουν στο 121 00:05:26,890 --> 00:05:30,510 αρχεία κεφαλίδας, έτσι ώστε ο compiler μπορεί κανείς, ότι ασφαλίζουν 122 00:05:30,510 --> 00:05:33,280 είστε με τη χρήση των πόρων της βιβλιοθήκης με τον κατάλληλο τρόπο, 123 00:05:33,280 --> 00:05:37,120 και δύο, δημιουργούν το κατάλληλο κώδικα assembly. 124 00:05:37,120 --> 00:05:38,910 Ανάλογα με το πού είναι τα αρχεία κεφαλίδας της βιβλιοθήκης 125 00:05:38,910 --> 00:05:42,720 βρίσκεται, το # include σύνταξη ποικίλλει. 126 00:05:42,720 --> 00:05:44,880 Εάν τα αρχεία κεφαλίδας βρίσκεται στο σύστημα του 127 00:05:44,880 --> 00:05:46,690 προεπιλογή περιλαμβάνουν κατάλογο - 128 00:05:46,690 --> 00:05:48,780 τυπικά, usr/include-- 129 00:05:48,780 --> 00:05:52,200 τότε η γωνία σύνταξη παρενθέσεων χρησιμοποιείται, όπως στο # περιλαμβάνουν 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Ωστόσο, αν τα αρχεία κεφαλίδας που βρίσκεται στην ίδια 132 00:05:59,540 --> 00:06:02,960 κατάλογο με τις δικές σας κώδικα, η διπλή σύνταξη απόσπασμα είναι 133 00:06:02,960 --> 00:06:04,870 χρησιμοποιείται, όπως σε περιλαμβάνουν # "mylib.h". 134 00:06:08,630 --> 00:06:11,220 >> Το δεύτερο πράγμα που πρέπει να κάνετε είναι να συνδέσετε το δυαδικό 135 00:06:11,220 --> 00:06:13,760 βιβλιοθήκη αρχείο κατά τη μεταγλώττιση κωδικό σας. 136 00:06:13,760 --> 00:06:15,810 Αυτό είναι ένα εξαιρετικά σημαντικό βήμα. 137 00:06:15,810 --> 00:06:17,540 Θυμηθείτε νωρίτερα τη συζήτησή μας σχετικά με το πώς κεφαλίδα 138 00:06:17,540 --> 00:06:20,200 τα αρχεία δεν περιέχουν κώδικα της εφαρμογής; 139 00:06:20,200 --> 00:06:22,200 Εάν ξεχάσετε αυτό το βήμα, θα λαμβάνετε σφάλματα σχετικά με 140 00:06:22,200 --> 00:06:24,990 απροσδιόριστα σύμβολα αναφέρονται στον κώδικα σας. 141 00:06:24,990 --> 00:06:29,580 Για να λυθεί αυτό, χρησιμοποιήστε το l-σημαίας ακολουθούμενος αμέσως 142 00:06:29,580 --> 00:06:32,320 χωρίς ένα χώρο με το όνομα της βιβλιοθήκης. 143 00:06:32,320 --> 00:06:35,410 Σε πολλά συστήματα, συμπεριλαμβανομένων της συσκευής, η C Πρότυπο 144 00:06:35,410 --> 00:06:38,350 Βιβλιοθήκες συνδέονται αυτόματα για εσάς. 145 00:06:38,350 --> 00:06:41,700 Ωστόσο, η βιβλιοθήκη μαθηματικά είναι μερικές φορές ομαδοποιούνται χωριστά 146 00:06:41,700 --> 00:06:44,600 και θα πρέπει να συνδεθούν με-lm. 147 00:06:44,600 --> 00:06:47,760 Στη συσκευή, φροντίζουμε για σας, και εμείς επίσης 148 00:06:47,760 --> 00:06:52,170 συνδέσει το CS50-βιβλιοθήκη με lcs50. 149 00:06:52,170 --> 00:06:54,540 Μπορείτε να δείτε όλα αυτά στη συσκευή όταν τρέχετε κάνει. 150 00:06:57,620 --> 00:06:59,130 >> Τώρα θα πρέπει να έχετε τις γνώσεις που χρειάζεστε για να χρησιμοποιήσετε 151 00:06:59,130 --> 00:07:02,150 σε βιβλιοθήκες Γ. Καλή διασκέδαση εξερεύνηση. 152 00:07:02,150 --> 00:07:05,880 Το όνομά μου είναι Nate Hardison, και αυτό είναι CS50.