[Powered by Google Translate] NATE Hardison: Na programação, uma biblioteca é uma coleção de
código pré-escritos relacionados.
As bibliotecas são como nós, programadores, ação ordinária e
código útil com o outro, com os diferentes programas que
escrever, e mesmo com os diferentes processos rodando a
ao mesmo tempo em nossos computadores.
>> Vamos explorar um pouco.
Uma das funções mais comuns que você já deve ter
vindo a utilizar é a função printf.
Agora, printf não é uma função mágica que tem sido
embutida no computador -
antes, é parte das bibliotecas C padrão, que são
uma coleção de funções que vem com o
C linguagem de programação.
Desde printf não é construído no computador, o que significa que
houve algum programador que realmente entrou e escreveu o
função printf e empacotado com o resto da norma
bibliotecas para que futuros programadores não teria de
duplicar o esforço.
E temos certeza grato que esse é o caso, porque o check
o quanto de código que realmente leva para implementar printf.
>> As bibliotecas C padrão, dos quais printf é uma parte, são
uma das ferramentas mais importantes que você
têm no combate CS50.
Em adição à biblioteca de entrada-saída, onde
printf vidas, há um monte de outras bibliotecas que
você provavelmente vai usar ao longo do CS50.
Por exemplo, a biblioteca tem funções de cadeia
comparar strings C, obter o seu comprimento, e concatená-las.
E a biblioteca de matemática dá-lhe útil
constantes, como pi e e.
Agora, em comparação com as bibliotecas padrão de outra programação
línguas, as bibliotecas C padrão são pequenos,
mas eles ainda têm uma quantidade significativa de material.
E isso não quer dizer que as bibliotecas padrão são o
apenas bibliotecas C, há muitos mais lá fora, no
mundo para você usar, incluindo a Biblioteca CS50,
bibliotecas cartografia com criptografia e descriptografia
funções, bibliotecas com funções para codificar e
reproduzir o vídeo, e assim por diante.
>> Isso nos leva a um aparte importante.
Uma das habilidades essenciais de engenharia é saber o
ferramentas disponíveis em sua caixa de ferramentas de modo que você pode usar
eles e não reinventar a roda, a menos
você tem que fazê-lo.
Como programadores, bibliotecas são um dos mais importantes
ferramentas que temos.
Quando você se encontra diante de uma tarefa que parece tedioso ou
comuns, como encontrar o comprimento de uma string C, você
deve se perguntar se pode ser o caso de que
alguém já fez a mesma coisa antes.
As chances são de que você poderia encontrar alguma
ajudar dentro de uma biblioteca.
>> Portanto, em termos técnicos, uma biblioteca é um arquivo binário que
foi produzido por ligação em conjunto uma colecção de
arquivos objeto usando uma ferramenta chamada, você
adivinhou, o vinculador.
Arquivos objeto são aqueles. O arquivos que você começa quando você
compilar C código fonte.
Quando os programadores escrever bibliotecas, eles normalmente
separar seu código C em dois tipos de arquivos:
arquivos de cabeçalho e arquivos de implementação.
Um arquivo de cabeçalho por convenção é dada a extensão de arquivo. H,
e contém código que declara o da biblioteca
recursos que estão disponíveis para você usar.
Esses recursos incluem funções, variáveis, estruturas,
definições de tipo, e assim por diante, e em conjunto, eles são
geralmente referida como a interface.
Na verdade, se você está sempre perguntando o que há em uma biblioteca,
os arquivos de cabeçalho são o lugar para olhar.
>> Por exemplo, você pode puxar para cima usr / include / stdio.h e verifique
tudo o que você sempre quis saber sobre
a biblioteca io padrão.
Há um monte de coisas aqui, e isso pode levar um pouco de
tempo para percorrer.
No entanto, juntamente com o Google e as páginas de manual, este é o
lugar para ir se você está se perguntando como o padrão de I / O
funções da biblioteca trabalhar.
Então, uma coisa fundamental notar aqui, no entanto, é que os arquivos de cabeçalho
normalmente não incluem definições de funções -
isto é, as implementações de funções reais.
Esta é uma ilustração de uma computação importante
princípio chamado de ocultação de informações, também referida no
vezes como o encapsulamento.
>> Como o usuário ou o cliente de uma biblioteca, você não precisa
saber sobre os internos da biblioteca em
a fim de usá-lo.
Lembro de ter visto printf apenas um pouco atrás?
Você já tinha visto o código real antes?
Bem, eu suponho que você não tem, mesmo que você pode
usaram toneladas printf de vezes.
Tudo o que tinha de saber era o presente declaração da função
no arquivo de cabeçalho stdio.h.
De qualquer forma, o benefício de ocultação de informação boa é que você
e os programas que você escreve são isoladas de quaisquer alterações
o código da implementação de funções de biblioteca.
Se a implementação de mudanças printf, você não tem
para ir e mudar todos os seus programas que usam printf.
>> Então onde é que a aplicação vai?
Bem, mais uma vez, por convenção, a implementação vai em um
arquivo com a extensão de arquivo. c.
Normalmente, os arquivos de cabeçalho e arquivos de implementação andam
na mão, por isso, se você declarou um monte de nova cadeia
funções em mystring.h, então você vai definir todos
essas funções em mystring. c.
Então os arquivos de cabeçalho e implementação são, então,
compilado, a criação de arquivos de objetos que são, então, ligados
em conjunto para produzir o arquivo de biblioteca binário.
O escritor biblioteca, então, enviar o arquivo binário ao longo
com os arquivos de cabeçalho para programadores que desejam usar
a biblioteca.
Neste ponto, os arquivos. Implementação C não são
necessário, exceto para recompilar a biblioteca do zero, então
eles são muitas vezes deixados de fora.
>> Para utilizar a biblioteca C, você tem que fazer duas coisas.
Primeiro, você deve # incluir arquivos de cabeçalho da biblioteca e os
arquivo de código fonte em que você deseja usar
código da biblioteca.
Isso informa o compilador de todas as declarações de
funções, variáveis, estruturas, et cetera, presentes no
arquivos de cabeçalho para que o compilador pode um, garantir que
você está usando recursos da biblioteca de forma adequada,
e dois, gerar o código de montagem apropriado.
Dependendo de onde os arquivos da biblioteca de cabeçalho são
localizado, a sintaxe # include varia.
Se os arquivos de cabeçalho estão localizados no sistema de
padrão incluem diretório -
tipicamente, usr/include--
em seguida, a sintaxe de colchetes ângulo é usado, como em # include
.
No entanto, se os ficheiros de inclusão estão localizados na mesma
diretório como seu próprio código, a sintaxe é aspas duplas
usado, como em # incluir "mylib.h".
>> A segunda coisa que você precisa fazer é ligar no binário
biblioteca de arquivos quando você compilar o código.
Este é um passo importante super.
Lembre-se de nossa discussão anterior sobre como cabeçalho
arquivos não contêm código de implementação?
Se você esquecer esta etapa, você terá erros sobre
símbolos indefinidos referenciado em seu código.
Para resolver isso, use o sinalizador-L seguido imediatamente
sem um espaço de pelo nome da biblioteca.
Em muitos sistemas, incluindo o aparelho, o Standard C
Bibliotecas são ligadas automaticamente para você.
No entanto, a biblioteca matemática é muitas vezes empacotados separadamente
e pode precisar de ser ligada com-lm.
No aparelho, nós cuidamos disso para você, e nós também
ligar a biblioteca com CS50-lcs50.
Você pode ver tudo isso no aparelho quando você executar o make.
>> Agora você deve ter o conhecimento necessário para usar
bibliotecas em C. Divirta-se explorar.
Meu nome é Nate Hardison, e este é o CS50.