[Powered by Google Translate] NATE Hardison: Bei der Programmierung ist eine Bibliothek eine Sammlung von verwandten vordefinierte Code. Bibliotheken sind, wie wir als Programmierer, gemeinsame und hilfreich Code miteinander, mit den verschiedenen Programmen wir schreiben, und auch mit den verschiedenen Prozessen an Gleichzeitig auf unseren Computern. Lassen Sie uns ein wenig. Eines der häufigsten Funktionen, die Sie haben wahrscheinlich wurde mit der Funktion printf. Jetzt, printf ist nicht irgendeine magische Funktion, die ist schon in den Computer fest codiert - vielmehr ist es ein Teil der C Standard Libraries, die sind eine Sammlung von Funktionen, die dem Motherboard C-Programmiersprache. Da printf nicht in den Computer eingebaut, bedeutet dies, dass es gab einige Programmierer, die tatsächlich in ging und schrieb die printf Funktion und gebündelt es mit dem Rest des Standards Bibliotheken, so dass zukünftige Programmierer müsste nicht duplizieren Sie die Anstrengung. Und wir sind sicher dankbar, dass das der Fall ist, weil zu überprüfen Sie heraus, wie viel Code es tatsächlich dauert, bis printf umzusetzen. Die C Standard Libraries, von denen printf ist ein Teil sind eines der wichtigsten Werkzeuge, die Sie haben bei der Bewältigung CS50. Neben der Eingabe-Ausgabe-Bibliothek, in der printf lebt, gibt es eine Reihe von anderen Bibliotheken, Sie werden wahrscheinlich nutzen über den Verlauf der CS50. Zum Beispiel hat die Zeichenfolge zu Bibliotheksfunktionen Vergleichen C-Strings, bekommen ihre Länge, und verketten sie. Und die Mathematik-Bibliothek gibt Ihnen hilfreiche Konstanten wie pi und e. Nun zu den Standard-Bibliotheken von anderen Programmiersprachen im Vergleich Sprachen, sind die C Standard Libraries wirklich klein, aber sie haben noch eine erhebliche Menge an Zeug. Und das ist nicht zu sagen, dass die Standard-Bibliotheken die sind Nur C-Bibliotheken, es gibt viele mehr gibt in der Welt für Sie zu nutzen, einschließlich der CS50-Bibliothek, Kartographie Bibliotheken mit Ver-und Entschlüsselung Funktionen, Bibliotheken mit Funktionen zu codieren und Wiedergabe von Video, und so weiter. Dies bringt uns zu einem wichtigen beiseite. Einer der wesentlichen Fähigkeiten Engineering Kenntnis der Werkzeuge in der Toolbox, so dass Sie verwenden können, Sie und vermeiden Sie das Rad neu erfinden, wenn Sie haben zu tun. Als Programmierer sind Bibliotheken eine der wichtigsten Werkzeuge, die wir haben. Wenn du dich vor einer Aufgabe, die langwierig oder scheint alltäglich, wie die Suche nach der Länge eines C-String, Sie sollten Sie sich fragen, ob es der Fall sein könnte, dass jemand schon das gleiche getan. Die Chancen stehen gut, dass man einige finden Hilfe innerhalb einer Bibliothek. So in technischer Hinsicht ist eine Bibliothek eine binäre Datei, die die durch Verknüpfung eine Sammlung von produziert Objekt-Dateien mithilfe eines Tools namens Sie ahnen es, der Linker. Object Dateien sind diejenigen. O Dateien, die Sie, wenn Sie kompilieren C-Quellcode. Wenn Programmierer Bibliotheken schreiben, sie typischerweise trennen ihre C-Code in zwei Arten von Dateien: Header-Dateien und Umsetzung Dateien. Eine Header-Datei per Konvention wird die. H Dateierweiterung angegeben, und es enthält Code, der die Bibliothek erklärt Ressourcen, die für Sie zu bedienen sind. Zu diesen Ressourcen gehören Funktionen, Variablen, Strukturen, Typdefinitionen und so weiter, und sie zusammengenommen gemeinhin als Schnittstelle bezeichnet. In der Tat, wenn Sie jemals fragen, was ist in einer Bibliothek, die Header-Dateien sind der Ort, um zu schauen. Zum Beispiel können Sie ziehen usr / include / stdio.h und überprüfen alles, was Sie jemals wissen wollten über die Standard-io-Bibliothek. Es gibt eine Menge Sachen hier, und es kann ein bisschen dauern Zeit, um durch zu waten. Doch mit Google und den manpages, ist dies die Ort, um zu gehen, wenn Sie sich fragen, wie die Standard-I / O Library-Funktionen arbeiten. So ein Schlüssel ist hier zu beachten ist allerdings, dass die Header-Dateien typischerweise nicht enthalten Funktionsdefinitionen - das heißt, die tatsächliche Funktion Implementierungen. Dies ist eine Veranschaulichung eines wichtigen Informatik Prinzip genannt information hiding, auch bei bezeichnet mal als Kapselung. Da die Benutzer oder den Client einer Bibliothek, die Sie nicht brauchen, um wissen, über die Interna der Bibliothek Um es zu benutzen. Angemeldet sehen printf nur ein bisschen her? Hatten Sie jemals den eigentlichen Code schon einmal gesehen? Nun, ich nehme an, dass Sie nicht haben, auch wenn Sie vielleicht verwendet printf Tonnen Zeiten haben. Alles, was Sie musste wissen, war die Funktion Erklärung vorhanden in der Header-Datei stdio.h. Auf jeden Fall ist der Nutzen von guter Information Hiding, dass Sie und die Programme, die Sie schreiben, sind von Änderungen in isolierten der Code für die Ausführung des Bibliotheksfunktionen. Wenn die Implementierung von printf Veränderungen, müssen Sie nicht zu gehen und ändern Sie alle Ihre Programme, die printf verwenden. Woher kommt also die Umsetzung gehen? Nun, wieder durch Konvention, geht die Umsetzung in eine Datei mit der. c Dateiendung. Normalerweise gehen Header-Dateien und Implementierungsdateien Hand in der Hand, wenn Sie deklariert haben eine Reihe von neuen String Funktionen in mystring.h, dann werden Sie definieren alle diese Funktionen in mystring. c. Also die Header und Implementierung Dateien sind dann zusammengestellt, Erstellen von Objekt-Dateien, die dann miteinander verbunden sind zusammen, um zu produzieren das binäre Library-Datei. Die Bibliothek Schriftsteller dann versenden die binäre Datei zusammen mit den Header-Dateien für Programmierer, die verwenden möchten die Bibliothek. An diesem Punkt sind die. C Umsetzung Dateien nicht benötigt werden, außer um die Bibliothek von Grund auf neu kompilieren, so sie sind oft ausgelassen. Um die C-Bibliothek verwenden, müssen Sie zwei Dinge tun. Zunächst müssen Sie # include der Bibliothek Header-Dateien und die Quellcodedatei, wo Sie verwenden möchten der Bibliothek Code. Dieser informiert den Compiler über alle Erklärungen Funktionen, Variablen, Strukturen, et cetera, in der Header-Dateien, so dass der Compiler ein, sicherzustellen, dass Sie verwenden die Bibliothek der Ressourcen in der richtigen Weise, und zwei, erzeugen die entsprechende Assembler-Code. Je nachdem, wo der Bibliothek Header-Dateien sind befindet, ändert sich die # include-Syntax. Wenn die Header-Dateien sind im System befindet Standardmäßig gehören directory - typischerweise usr/include-- dann die spitzen Klammern Syntax verwendet wird, wie in # umfassen . Wenn jedoch die Header-Dateien werden in derselben befindet Verzeichnis wie Ihre eigenen Code, ist das doppelte Anführungszeichen Syntax verwendet, wie in # "mylib.h" umfassen. Das zweite, was Sie tun müssen, ist in der binären Verknüpfung Library-Datei, wenn Sie Ihren Code zu kompilieren. Dies ist ein super wichtiger Schritt. Denken Sie an unsere frühere Diskussion darüber, wie header Dateien enthalten keine Umsetzung Code? Wenn Sie diesen Schritt auslassen, werden Sie Fehlermeldungen über zu bekommen undefinierten Symbolen in Ihrem Code verwiesen. Um dieses Problem zu lösen, verwenden Sie die Option-l, unmittelbar gefolgt ohne Abstand von der Name der Bibliothek. Auf vielen Systemen, einschließlich des Geräts, die C Standard Bibliotheken werden automatisch für Sie verbunden. Allerdings ist die Mathematik-Bibliothek manchmal gebündelt getrennt und vielleicht müssen mit-lm verknüpft werden. Auf dem Gerät übernehmen wir das für Sie, und wir auch verbinden die CS50-Bibliothek mit-LCS50. Sie können all dies auf dem Gerät, wenn Sie make sehen. Nun sollten Sie das Wissen, das Sie brauchen, um zu verwenden Bibliotheken in C Viel Spaß beim Entdecken. Mein Name ist Nate Hardison, und dies ist CS50.