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