[Powered by Google Translate] NATE HARDISON: En programmation, une bibliothèque est une collection de code lié à pré-écrit. Les bibliothèques sont la façon dont nous, en tant que programmeurs, actions ordinaires et Code utile uns avec les autres, avec les différents programmes que nous écrire, et même avec les différents processus en cours d'exécution à en même temps sur nos ordinateurs. Nous allons explorer un peu. Une des fonctions les plus courantes que vous avez probablement été en utilisant la fonction printf. Maintenant, printf est pas une fonction magique qui a été codées en dur dans l'ordinateur - au contraire, elle fait partie de la bibliothèque standard C, qui sont un ensemble de fonctions qui vient avec le Langage de programmation C. Depuis printf n'est pas intégré à l'ordinateur, cela signifie que il y avait un programmeur qui a réellement entré et a écrit l' fonction printf et livré avec le reste de la norme bibliothèques afin que les futurs programmeurs n'auraient pas à dupliquer les efforts. Et nous sommes sûrs reconnaissant que c'est le cas, parce que vérifier combien code, il vous prend pour mettre en œuvre printf. Les bibliothèques C standard, dont une partie est printf, sont l'un des outils les plus importants que vous avoir dans la lutte contre CS50. En plus de la bibliothèque d'entrée-sortie où printf vie, il ya un tas d'autres bibliothèques qui vous utiliserez probablement au cours de CS50. Par exemple, la bibliothèque dispose de fonctions pour chaîne comparer des chaînes C, d'obtenir leur longueur, et de les enchaîner. Et la bibliothèque mathématique vous donne utiles constantes, comme pi et e. Maintenant, par rapport aux bibliothèques standard de programmation autre langues, les bibliothèques C standard sont très petites, mais ils ont encore une importante quantité de choses. Et cela ne veut pas dire que les bibliothèques standards sont l' seules bibliothèques C, il ya beaucoup d'autres là-bas dans le monde pour vous d'utiliser, y compris la bibliothèque CS50, bibliothèques cartographie avec le chiffrement et le déchiffrement les fonctions, les bibliothèques de fonctions pour coder et lire des vidéos, et ainsi de suite. Cela nous amène à une parenthèse importante. L'une des compétences essentielles de l'ingénierie est de connaître la outils disponibles dans votre boîte à outils afin que vous pouvez utiliser eux et éviter de réinventer la roue, sauf vous avez à faire. Comme les programmeurs, les bibliothèques sont un des plus importants outils dont nous disposons. Lorsque vous vous trouvez face à une tâche qui semble pénible ou monnaie courante, comme trouver la longueur d'une chaîne C, vous devriez vous demander si cela pourrait être le cas que quelqu'un a déjà fait la même chose avant. Il ya des chances que vous pourriez trouver quelque aider dans une bibliothèque. Donc, en termes techniques, une bibliothèque est un fichier binaire qui a été produite en reliant un ensemble de fichiers objets à l'aide d'un outil appelé, vous l'aurez deviné, l'éditeur de liens. Les fichiers objets sont ceux des fichiers. O que vous obtenez lorsque vous compiler le code source C. Lorsque les programmeurs écrivent les bibliothèques, ils sont généralement séparer leur code C dans deux types de fichiers: fichiers d'en-tête et fichiers de mise en œuvre. Un fichier d'en-tête, par convention, est donnée l'extension de fichier. H, et il contient un code qui déclare la bibliothèque de ressources qui sont disponibles pour vous à utiliser. Ces ressources comprennent les fonctions, variables, structures, définitions de type, et ainsi de suite, et en même temps, ils sont communément appelé de l'interface. En fait, si vous n'êtes jamais se demander ce qu'il ya dans une bibliothèque, les fichiers d'en-tête sont l'endroit à regarder. Par exemple, vous pouvez tirer vers le haut usr / include / stdio.h et vérifier tout ce que vous avez toujours voulu savoir à propos de la bibliothèque standard io. Il ya beaucoup de choses ici, et cela peut prendre un peu de le temps de parcourir. Cependant, avec Google et les pages de manuel, c'est la endroit où aller si vous vous demandez comment la norme E / S fonctions de la bibliothèque fonctionne. Donc, une chose important de noter ici, cependant, c'est que les fichiers d'en-tête généralement, ne comporte pas de définition de fonction - c'est à dire les implémentations de la fonction réelle. Ceci est une illustration d'une importante informatique principe appelé masquage d'information, également mentionné au fois que l'encapsulation. Comme l'utilisateur ou le client d'une bibliothèque, vous n'avez pas besoin de connaître le fonctionnement interne de la bibliothèque de afin de l'utiliser. Rappelez-vous voir printf juste un peu plus tôt? Aviez-vous déjà vu le code réel avant? Eh bien, je suppose que vous n'avez pas, même si vous pourriez ont utilisé des tonnes de fois printf. Tout ce qu'il fallait savoir, c'était la présente déclaration de fonction dans le fichier d'en-tête stdio.h. Quoi qu'il en soit, l'avantage de cacher une bonne information, c'est que vous et les programmes que vous écrivez sont isolés de tout changement dans le code de l'application des fonctions de la bibliothèque. Si la mise en œuvre des changements printf, vous n'avez pas d'aller et de modifier tous vos programmes qui utilisent printf. Alors d'où vient la mise en œuvre y aller? Eh bien, encore une fois, par convention, la mise en œuvre va dans un fichier avec l'extension de fichier. c. Habituellement, les fichiers d'en-tête et fichiers de mise en œuvre vont à la main, donc si vous avez déclaré un tas de nouvelle chaîne fonctions dans mystring.h, alors vous allez définir l'ensemble des ces fonctions dans machaine. c. Alors, les fichiers d'en-tête et de mise en œuvre sont alors compilé, la création de fichiers d'objets qui sont ensuite liés ensemble pour produire le fichier de bibliothèque binaire. L'écrivain bibliothèque sera ensuite expédier le fichier binaire long avec les fichiers d'en-tête pour les programmeurs qui souhaitent utiliser la bibliothèque. À ce stade, les fichiers de mise en œuvre. C ne sont pas nécessaire, à l'exception de recompiler la bibliothèque à partir de zéro, de sorte ils sont souvent laissés de côté. Pour utiliser la bibliothèque C, vous devez faire deux choses. Tout d'abord, vous devez inclure les fichiers d'en-tête # la bibliothèque et les fichier de code source lorsque vous souhaitez utiliser de la bibliothèque de code. Cela informe le compilateur de toutes les déclarations de fonctions, variables, structures, et cetera, présents dans le fichiers d'en-tête afin que le compilateur peut-on, s'assurer que vous utilisez les ressources de la bibliothèque de la bonne façon, et deux, de générer le code assembleur approprié. Selon l'endroit où les fichiers d'en-tête de la bibliothèque sont situé, la syntaxe # include varie. Si les fichiers d'en-tête sont situées dans le système de par défaut include - généralement, usr/include-- alors la syntaxe cornières est utilisé, comme dans # include . Toutefois, si les fichiers d'en-tête sont situées dans le même répertoire que votre propre code, la syntaxe guillemet double est utilisé, comme dans # include "malib.h". La deuxième chose que vous avez à faire est de lier dans le binaire bibliothèque de fichiers lorsque vous compilez votre code. Il s'agit d'une étape très important. Rappelez-vous notre discussion précédente sur la façon d'en-tête fichiers ne contiennent pas de code d'implémentation? Si vous oubliez cette étape, vous aurez des erreurs à propos de symboles non définis référencés dans votre code. Pour résoudre ce problème, utilisez l'option-l, suivie immédiatement sans espace par le nom de la bibliothèque. Sur de nombreux systèmes, y compris l'appareil, la norme C Les bibliothèques sont automatiquement liée pour vous. Cependant, la bibliothèque mathématique est parfois livré séparément et peut-être besoin d'être liée avec-lm. Sur l'appareil, nous prenons soin de cela pour vous, et nous avons également lier la bibliothèque CS50-à lcs50. Vous pouvez voir tout cela sur l'appareil lorsque vous exécutez faire. Maintenant vous devriez avoir les connaissances nécessaires pour utiliser bibliothèques en C. Amusez vous à explorer. Mon nom est Nate Hardison, et c'est CS50.