[Powered by Google Translate] NATE HARDISON: Στον προγραμματισμό, μια βιβλιοθήκη είναι μια συλλογή από που σχετίζονται με prewritten κώδικα. Οι βιβλιοθήκες είναι πώς εμείς, ως προγραμματιστές, μοιράζονται κοινά και χρήσιμη κώδικα με το άλλο, με τα διάφορα προγράμματα έχουμε γράψει, ακόμα και με τις διαφορετικές διαδικασίες που τρέχουν σε Την ίδια στιγμή στους υπολογιστές μας. Ας εξετάσουμε λίγο. Μία από τις πιο κοινές λειτουργίες που έχετε πιθανώς χρησιμοποιούν είναι η printf λειτουργία. Τώρα, printf δεν είναι κάποια μαγική λειτουργία που είναι ήδη σκληρό κωδικοποιούνται στον υπολογιστή - μάλλον, είναι μέρος των C Βιβλιοθηκών Standard, τα οποία είναι μια συλλογή από λειτουργίες που έρχεται με το C γλώσσα προγραμματισμού. Δεδομένου ότι η printf δεν είναι ενσωματωμένη στον υπολογιστή, αυτό σημαίνει ότι υπήρξε κάποια προγραμματιστής που πραγματικά πήγε και έγραψε το printf συνδυασμένη λειτουργία και με τον υπόλοιπο του προτύπου βιβλιοθήκες, έτσι ώστε μελλοντικά οι προγραμματιστές δεν θα πρέπει να διπλούν την προσπάθεια. Και είμαστε σίγουροι ευγνώμων που αυτή είναι η περίπτωση, επειδή ελέγχει πόσο κώδικα που χρειάζεται πραγματικά να εφαρμόσει printf. Τα C Βιβλιοθήκες Πρότυπο, εκ των οποίων printf είναι μέρος, είναι ένα από τα πιο σημαντικά εργαλεία που έχουν στην αντιμετώπιση CS50. Εκτός από την βιβλιοθήκη εισόδου-εξόδου, όπου printf ζωή, υπάρχουν ένα σωρό άλλες βιβλιοθήκες που κατά πάσα πιθανότητα θα χρησιμοποιήσει κατά τη διάρκεια του CS50. Για παράδειγμα, η βιβλιοθήκη συμβολοσειρά έχει λειτουργίες για συγκρίνουν C χορδές, να πάρει το μήκος τους, και να τους ενώσετε. Και η βιβλιοθήκη math σας δίνει χρήσιμες σταθερές, όπως το π και e. Τώρα, σε σύγκριση με τις τυποποιημένες βιβλιοθήκες άλλων προγραμματισμού γλώσσες, οι βιβλιοθήκες C Πρότυπο είναι πολύ μικρό, αλλά εξακολουθούν να έχουν ένα σημαντικό ποσό από τα πράγματα. Και αυτό δεν σημαίνει ότι οι βιβλιοθήκες πρότυπο είναι το μόνο βιβλιοθήκες C? υπάρχουν πολλά περισσότερα εκεί έξω στο κόσμο για να το χρησιμοποιήσετε, συμπεριλαμβανομένου του CS50 Βιβλιοθήκη, βιβλιοθήκες χαρτογραφίας με κρυπτογράφηση και την αποκρυπτογράφηση λειτουργίες, οι βιβλιοθήκες με τις λειτουργίες για την κωδικοποίηση και αναπαραγωγή βίντεο, και ούτω καθεξής. Αυτό μας φέρνει σε ένα σημαντικό μέρος. Μία από τις βασικές δεξιότητες της μηχανικής είναι η γνώση διαθέσιμα εργαλεία στην εργαλειοθήκη σας, ώστε να μπορείτε να χρησιμοποιήσετε τους και να μην ανακαλύπτουμε τον τροχό εκτός θα πρέπει να το πράξουν. Ως προγραμματιστές, οι βιβλιοθήκες είναι ένα από τα πιο σημαντικά εργαλεία που έχουμε. Όταν βρείτε τον εαυτό σας που αντιμετωπίζει ένα έργο που μοιάζει κουραστική ή κοινός τόπος, όπως την εύρεση το μήκος μιας συμβολοσειράς C, που θα πρέπει να ρωτήσετε τον εαυτό σας, αν θα μπορούσε να είναι η περίπτωση που κάποιος έχει κάνει ήδη το ίδιο πράγμα πριν. Οι πιθανότητες είναι ότι θα μπορούσατε να βρείτε κάποια βοηθήσουν σε μια βιβλιοθήκη. Έτσι, από τεχνική άποψη, μια βιβλιοθήκη είναι ένα δυαδικό αρχείο που έχει παραχθεί με σύνδεση μαζί μια συλλογή των αρχεία αντικειμένου χρησιμοποιώντας ένα εργαλείο που ονομάζεται, θα μαντέψατε, ο σύνδεσμος. Αντικείμενο αρχεία είναι αυτά. O αρχεία που παίρνετε όταν καταρτίζουν C πηγαίο κώδικα. Όταν οι προγραμματιστές γράφουν βιβλιοθήκες, που κατά κανόνα διαχωρισμό C κωδικό τους σε δύο τύπους αρχείων: header αρχεία και τα αρχεία της εφαρμογής. Ένα αρχείο κεφαλίδας με σύμβαση δίνεται η επέκταση αρχείου. H, και περιέχει κώδικα που δηλώνει τη βιβλιοθήκη του πόροι που είναι διαθέσιμοι για να το χρησιμοποιήσετε. Οι πόροι αυτοί περιλαμβάνουν λειτουργίες, μεταβλητές, structs, ορισμούς του τύπου, και ούτω καθεξής, και μαζί, είναι κοινώς αναφέρεται ως διεπαφή. Στην πραγματικότητα, εάν είστε πάντα αναρωτιούνται τι είναι σε μια βιβλιοθήκη, τα αρχεία κεφαλίδας είναι το μέρος για να δούμε. Για παράδειγμα, μπορείτε να τραβήξετε μέχρι usr / include / stdio.h και ελέγξτε από όλα όσα θέλετε να ξέρετε για η πρότυπη βιβλιοθήκη io. Υπάρχουν πολλά πράγματα εδώ, και μπορεί να πάρει ένα κομμάτι της χρόνο για να εντρυφήσω μέσω. Ωστόσο, μαζί με τις Google και manpages, αυτή είναι η θέση για να πάει εάν αναρωτιέστε πώς το πρότυπο I / O λειτουργίες της βιβλιοθήκης λειτουργεί. Έτσι, ένα βασικό πράγμα που πρέπει να σημειωθεί εδώ, όμως, είναι ότι τα αρχεία κεφαλίδας συνήθως δεν περιλαμβάνουν τους ορισμούς των συναρτήσεων - δηλαδή, οι πραγματικές υλοποιήσεις λειτουργίας. Αυτό είναι μία απεικόνιση μιας σημαντικής επιστήμης των υπολογιστών αρχή που ονομάζεται απόκρυψη πληροφοριών, αναφέρεται επίσης σε φορές ως ενθυλάκωση. Καθώς ο χρήστης ή ο πελάτης του μια βιβλιοθήκη, δεν χρειάζεται να γνωρίζουν τα εσωτερικά της βιβλιοθήκης σε προκειμένου να το χρησιμοποιήσει. Θυμηθείτε να δει printf μόλις λίγο πριν; Αν έχετε δει ποτέ το πραγματικό κωδικό πριν; Καλά, υποθέτω ότι δεν έχετε, ακόμα κι αν θα μπορούσε έχουν χρησιμοποιηθεί printf τόνους φορές. Όλα όσα έπρεπε να μάθω ήταν η σημερινή δήλωση της συνάρτησης stdio.h στο αρχείο κεφαλίδας. Εν πάση περιπτώσει, το όφελος της καλής απόκρυψη πληροφοριών είναι ότι μπορείτε και τα προγράμματα που γράφετε μόνωση από τυχόν αλλαγές σε ο κωδικός της εφαρμογής των λειτουργιών της βιβλιοθήκης. Εάν η εφαρμογή της printf αλλαγές, δεν έχετε για να πάει και να αλλάξετε όλα τα προγράμματά σας που χρησιμοποιούν printf. Έτσι, όταν κάνει την εφαρμογή πάτε; Λοιπόν, και πάλι, κατά συνθήκη, η υλοποίηση πηγαίνει σε ένα αρχείο με την επέκταση αρχείου. γ.. Συνήθως, τα αρχεία και τα αρχεία κεφαλίδας εφαρμογή πάνε χέρι στο χέρι, οπότε αν έχετε δηλώσει ένα σωρό νέα σειρά λειτουργίες σε mystring.h, τότε θα καθορίσει όλα αυτές οι λειτουργίες σε Συμβολοσειρά. c. Έτσι, στη συνέχεια, τα αρχεία κεφαλίδας και στη συνέχεια την εφαρμογή καταρτίζονται, τη δημιουργία αρχείων αντικείμενο που στη συνέχεια συνδέονται μαζί για να παράγουν το δυαδικό αρχείο της βιβλιοθήκης. Ο συγγραφέας βιβλιοθήκη θα στείλει τότε το δυαδικό αρχείο κατά μήκος με τα αρχεία κεφαλίδας για προγραμματιστές που θέλουν να χρησιμοποιήσουν η βιβλιοθήκη. Σε αυτό το σημείο, τα αρχεία. Εφαρμογής δεν είναι c απαιτείται, εκτός από τη μεταγλώττιση του βιβλιοθήκη από το μηδέν, έτσι από όπου και αν συχνά αριστερά έξω. Για να χρησιμοποιήσετε τη βιβλιοθήκη C, θα πρέπει να κάνει δύο πράγματα. Κατ 'αρχάς, θα πρέπει να περιλαμβάνουν τα αρχεία # κεφαλίδα της βιβλιοθήκης και των πηγαίο κώδικα όπου θέλετε να χρησιμοποιήσετε κώδικα της βιβλιοθήκης. Αυτό πληροφορεί τον compiler όλων των δηλώσεων του συναρτήσεις, μεταβλητές, structs, κ.λπ., που υπάρχουν στο αρχεία κεφαλίδας, έτσι ώστε ο compiler μπορεί κανείς, ότι ασφαλίζουν είστε με τη χρήση των πόρων της βιβλιοθήκης με τον κατάλληλο τρόπο, και δύο, δημιουργούν το κατάλληλο κώδικα assembly. Ανάλογα με το πού είναι τα αρχεία κεφαλίδας της βιβλιοθήκης βρίσκεται, το # include σύνταξη ποικίλλει. Εάν τα αρχεία κεφαλίδας βρίσκεται στο σύστημα του προεπιλογή περιλαμβάνουν κατάλογο - τυπικά, usr/include-- τότε η γωνία σύνταξη παρενθέσεων χρησιμοποιείται, όπως στο # περιλαμβάνουν . Ωστόσο, αν τα αρχεία κεφαλίδας που βρίσκεται στην ίδια κατάλογο με τις δικές σας κώδικα, η διπλή σύνταξη απόσπασμα είναι χρησιμοποιείται, όπως σε περιλαμβάνουν # "mylib.h". Το δεύτερο πράγμα που πρέπει να κάνετε είναι να συνδέσετε το δυαδικό βιβλιοθήκη αρχείο κατά τη μεταγλώττιση κωδικό σας. Αυτό είναι ένα εξαιρετικά σημαντικό βήμα. Θυμηθείτε νωρίτερα τη συζήτησή μας σχετικά με το πώς κεφαλίδα τα αρχεία δεν περιέχουν κώδικα της εφαρμογής; Εάν ξεχάσετε αυτό το βήμα, θα λαμβάνετε σφάλματα σχετικά με απροσδιόριστα σύμβολα αναφέρονται στον κώδικα σας. Για να λυθεί αυτό, χρησιμοποιήστε το l-σημαίας ακολουθούμενος αμέσως χωρίς ένα χώρο με το όνομα της βιβλιοθήκης. Σε πολλά συστήματα, συμπεριλαμβανομένων της συσκευής, η C Πρότυπο Βιβλιοθήκες συνδέονται αυτόματα για εσάς. Ωστόσο, η βιβλιοθήκη μαθηματικά είναι μερικές φορές ομαδοποιούνται χωριστά και θα πρέπει να συνδεθούν με-lm. Στη συσκευή, φροντίζουμε για σας, και εμείς επίσης συνδέσει το CS50-βιβλιοθήκη με lcs50. Μπορείτε να δείτε όλα αυτά στη συσκευή όταν τρέχετε κάνει. Τώρα θα πρέπει να έχετε τις γνώσεις που χρειάζεστε για να χρησιμοποιήσετε σε βιβλιοθήκες Γ. Καλή διασκέδαση εξερεύνηση. Το όνομά μου είναι Nate Hardison, και αυτό είναι CS50.