PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
Laboratório de Programação I: Construção de bibliotecas em C
1. Construção de bibliotecas em CConstrução de bibliotecas em C
Prof. Alex Camargo
alexcamargoweb@gmail.com
UNIVERSIDADE FEDERAL DO PAMPA
CAMPUS BAGÉ
LABORATÓRIO DE PROGRAMAÇÃO I
2. Bibliotecas
É muito interessante criar bibliotecas cujas funções possam ser
reutilizadas em diversos programas. Com isso podemos, inclusive,
distribuir essas bibliotecas, com a opção de "esconder" o código-
fonte utilizado nas funções:
Ao programar em C, já utilizamos muitas bibliotecas com
funções prontas. Ex.: <stdio.h> e <stdlib.h>
Para criarmos nossas próprias bibliotecas é preciso ter:
Arquivos de cabeçalho (com extensão '.h'). Ex.: “fatorial.h”
Arquivos de biblioteca (no gcc a extensão utilizada é '.a').
Ex.: “libfatorial.a”
Laboratório de Programação I – Construção de bibliotecas em C
3. Criando uma biblioteca
Veremos um exemplo, em C, de biblioteca contendo uma única
função, que receba um valor inteiro e retorne seu sucessor.
O arquivo cabeçalho será sucessor.h, e o arquivo com o
código-fonte da função será nomeado sucessor.c contendo:
Veja que já incluímos sucessor.h. Isso será necessário para o compilador
reconhecer a função como sendo parte da biblioteca.
Laboratório de Programação I – Construção de bibliotecas em C
4. Criando uma biblioteca
O arquivo cabeçalho irá conter informações apenas da interface,
tipicamente as assinaturas (ou protótipos) das funções. A
extensão .h vem da palavra header (cabeçalho).
Nesse caso teremos o arquivo cabeçalho, nomeado
sucessor.h, definido da seguinte maneira:
As primeiras linhas (#ifndef e #define) tem a função de verificar se o
arquivo cabeçalho já foi incluído no projeto, antes de incluí-lo novamente de
forma desnecessária.
Laboratório de Programação I – Construção de bibliotecas em C
5. Criando uma biblioteca
Temos, então, dois arquivos: sucessor.c (função) e sucessor.h
(cabeçalho).
Para utilizá-los, devemos gerar o arquivo objeto da biblioteca:
Também criamos a biblioteca, para que possa ser distribuída:
Os arquivos .a são bibliotecas estáticas que tem a vantagem de poder
carregar vários objetos. O comando é bastante útil em projetos maiores.
Laboratório de Programação I – Construção de bibliotecas em C
6. Utilizando a biblioteca
Agora, sempre que for necessário usar funções definidas no
arquivo sucessor.c, incluímos o arquivo sucessor.h no programa
que vamos implementar.
Abaixo um exemplo de código-fonte, que iremos nomear
principal.c, que utiliza a biblioteca sucessor:
Laboratório de Programação I – Construção de bibliotecas em C
7. Compilando a biblioteca
Na compilação é preciso instruir o compilador com as opções de
includes e edição de ligações (linker) para que a biblioteca possa
ser incluída no programa executável.
No gcc isso é feito utilizando:
Onde:
-I inclui diretórios onde existam cabeçalhos utilizados no
código-fonte.
-L inclui diretórios onde existam bibliotecas que devem ser
incluídas no programa.
-lsucessor utiliza o arquivo de biblioteca criado, libsucessor.a
-o programa gera como saída o executável principal.
Laboratório de Programação I – Construção de bibliotecas em C
8. Exercícios
Responda as seguintes questões referentes a criação de bibliotecas em
em C.
1. Escreva uma função que recebe como argumentos uma cadeia de
caracteres (s) e um caracter (c). A função deve retornar como resultado
o número de vezes que (c) aparece em (s). Para o desenvolvimento
utilize um arquivo cabeçalho (.h) e uma biblioteca (.a).
Exemplo de saída:
s = unipampa
c = p
O número de vezes que p aparece em unipampa é 2.
Laboratório de Programação I – Construção de bibliotecas em C
9. Referências
Ponti, M. P. "Uma breve introdução à criação de bibliotecas e makefiles
em C/C++." Universidade de São Paulo, 2011. Disponível em:
<http://wiki.icmc.usp.br/images/0/0a/ApostilaMakefiles2011.pdf>.
Acesso em Mar/2014.
Laboratório de Programação I – Construção de bibliotecas em C