[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.