[Powered by Google Translate] Nate Hardison: Na programación, unha biblioteca é unha colección de código pre-escritos relacionados. As bibliotecas son coma nós, desenvolvedores, acción ordinaria e código útil co outro, cos programas que escribir, e mesmo cos diferentes procesos rodando a ao mesmo tempo nos nosos ordenadores. Imos explorar un pouco. Unha das funcións máis comúns que xa debe ter está a utilizar é a función printf. Agora printf non é unha función máxica que foi embutida no ordenador - antes, é parte das bibliotecas C estándar, que son unha colección de funcións que vén co C linguaxe de programación. Dende printf non está construído no ordenador, o que significa que houbo algún desenvolvedor que realmente entrou e escribiu o función printf e embalaxe co resto da normativa bibliotecas para que futuros programadores non tería que duplicar o esforzo. E temos seguro grata que ese é o caso, porque o check o canto de código que realmente leva para aplicar printf. As bibliotecas C defecto, dos cales printf é unha parte, son unha das ferramentas máis importantes que teñen no combate CS50. En adición á biblioteca de entrada-saída, onde printf vidas, hai unha morea de outras bibliotecas que probablemente vai usar ao longo do CS50. Por exemplo, a biblioteca ten funcións de cadea comparar cadeas C, obter a súa lonxitude, e concatená-las. E a biblioteca de matemáticas dálle útil constantes, como pi e e. Agora, en comparación coas bibliotecas estándar de outra programación linguas, as bibliotecas C estándar son pequenos, pero eles aínda teñen unha cantidade significativa de material. E iso non quere dicir que as bibliotecas estándar son o só bibliotecas C, hai moitos máis aí fóra, no mundo para usar, incluíndo a Biblioteca CS50, libraries cartografía con cifrado e descriptografar funcións, bibliotecas con funcións para codificar e reproducir o vídeo, e así por diante. Isto nos leva a un separadamente importante. Unha das habilidades esenciais de Enxeñaría e saber ferramentas dispoñibles na súa caixa de ferramentas de modo que pode empregar eles e non reinventar a roda, a menos ten que facelo. Como desenvolvedores, bibliotecas son un dos máis importantes ferramentas que temos. Cando se atopa ante unha tarefa que parece tedioso ou comúns, como atopar a lonxitude dunha cadea C, vostede debe preguntar se pode ser o caso de que Alguén xa fixo a mesma cousa antes. As posibilidades son de que podería atopar algunha axudar dentro dunha biblioteca. Polo tanto, en termos técnicos, unha biblioteca e un arquivo binario que foi producido por conexión en conxunto unha colección de arquivos obxecto usando unha ferramenta chamada, vostede difícil de adiviñar, o vinculador. Arquivos obxecto son aqueles. O arquivo que comeza cando compilar C fonte. Cando os programadores escribir bibliotecas, normalmente separar o seu código C en dous tipos de arquivos: ficheiros de cabeceira e arquivos de implementación. Un arquivo de cabeceira por convención é dada a extensión de arquivo. H, e contén código que declara o da biblioteca recursos que están dispoñibles para usar. Estes recursos inclúen funcións, variables, estruturas, definicións de tipo, e así por diante, e en conxunto, son xeralmente refire como a interface. En realidade, se está sempre pregunta o que hai nunha biblioteca, os ficheiros de cabeceira son o lugar para ollar. Por exemplo, pode puxar arriba usr / include / stdio.h e comproba todo o que sempre quixo saber sobre biblioteca io estándar. Hai unha morea de cousas aquí, e iso pode levar un pouco de tempo para percorrer. Con todo, xunto con Google e as páxinas de manual, que é o lugar para ir se está a se pregunta como o estándar de I / O funcións da biblioteca traballar. Entón, unha cousa fundamental notar aquí, con todo, é que os arquivos de cabeceira normalmente non inclúen definicións de funcións - é dicir, as implementacións de funcións reais. Esta é unha ilustración dunha computación importante principio chamado ocultación de información, tamén se refire o veces como o encapsulamento. Como o usuario ou cliente dunha biblioteca, non saber sobre os internos da biblioteca a fin de usalo. Lembro de ver printf só un pouco atrás? Xa viu o código real antes? Ben, eu supoño que non ten, aínda que pode usaron toneladas printf de veces. Todo o que tiña que saber era o presente declaración da función no ficheiro de cabeceira stdio.h. En calquera caso, o beneficio de ocultación de información boa é que e os programas que escribe son illadas de calquera cambio o código da aplicación de funcións de biblioteca. A implementación de cambios printf, non ten para ir e cambiar todos os seus programas que usan printf. Entón onde é que a aplicación vai? Ben, unha vez máis, por convención, a implementación vai nun arquivo coa extensión de ficheiro. c. Normalmente, os ficheiros de cabeceira e arquivos de implementación andan na man, por iso, se declarou unha morea de nova cadea funcións en mystring.h, entón vai definir todos estas funcións en mystring. c. Entón os ficheiros de cabeceira e implementación son, entón, compilado, a creación de ficheiros de obxectos que son, entón, conectados en conxunto para producir o arquivo de biblioteca binario. O escritor biblioteca, entón, enviar o ficheiro binario ao longo cos ficheiros de cabeceira para programadores que desexen utilizar a biblioteca. Neste punto, os ficheiros. Implantación C non son necesario, excepto para recompilar a biblioteca de cero, entón son moitas veces deixados de fóra. Para usar a biblioteca C, ten que facer dúas cousas. Primeiro, ten que # incluír arquivos de cabeceira da biblioteca e ficheiro de código fonte en que quere usar código da biblioteca. Isto informa o compilador de todas as declaracións de funcións, variables, estruturas, etcétera, presentes no ficheiros de cabeceira para que o compilador pode un, garantir que está a usar recursos da biblioteca de forma adecuada, e dous, xerar o código de montaxe apropiado. Dependendo de onde os arquivos da biblioteca de cabeceira son situado, a sintaxe # include varía. Se os ficheiros de cabeceira están localizados no sistema de estándar inclúen directorio - Tipicamente, usr/include-- a continuación, a sintaxe de corchetes ángulo é usado, como en # include . Con todo, os ficheiros de inclusión están situados na mesma directorio como o seu propio código, a sintaxe é comiñas dobres usado, como en # incluír "mylib.h". A segunda cousa que cómpre facer é conectar o binario biblioteca de arquivos cando compilar o código. Este é un paso importante super. Lembre-se de nosa discusión anterior sobre como cabeceira arquivos non conteñen código de implementación? Se esquecer este paso, terá erros sobre símbolos indefinidos referenciado no seu código. Para solucionar isto, use o sinalizador-L seguido inmediatamente sen un espazo de polo nome da biblioteca. En moitos sistemas, incluíndo o aparello, o Standard C Bibliotecas son ligadas automaticamente para ti. Con todo, a biblioteca matemática é moitas veces agrupados por separado e pode ter que ser conectada co-LM. O aparello, nós coidamos diso para ti, e nós tamén conectar a biblioteca con CS50-lcs50. Podes ver todo isto no aparello cando executar o make. Agora ten que ter o coñecemento necesario para usar bibliotecas en C. Disfrútao se explotar. O meu nome é Nate Hardison, e este é o CS50.