Buscar

Aula14_Construcao_biblioteca

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Construc¸a˜o de Bibliotecas
Professor:
Silvio Luiz Bragatto Boss
e-mail:
silvioboss@utfpr.edu.br
Universidade Tecnolo´gica Federal do Parana´ - UTFPR
Coordenac¸a˜o de Informa´tica - COINF
Curso de Engenharia de Computac¸a˜o
Disciplina de Estrutura de Dados I
Construc¸a˜o de Bibliotecas
Suma´rio
1 Construc¸a˜o de Bibliotecas
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Bibliotecas sa˜o conjuntos de func¸o˜es “empacotadas” na forma
de um arquivo;
Se desejarmos utilizar uma destas func¸o˜es, basta informar que
o seu fonte C utilizara´ uma determinada biblioteca.
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
O GCC (compilador utilizado internamente pelo codeblocks) e´
na verdade um conjunto de ferramentas que sa˜o executadas
sem que o programador saiba.
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
O GCC (compilador utilizado internamente pelo codeblocks) e´
na verdade um conjunto de ferramentas que sa˜o executadas
sem que o programador saiba.
De fato, existem va´rios esta´gios na compilac¸a˜o de um fonte C
ate´ a gerac¸a˜o de um executa´vel.
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Seja o seguinte co´digo -PRINCIPAL.C
#include "menu.h"
int main (void)
{
mostra_menu();
return 0;
}
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Seja o seguinte co´digo - MENU.C
#include "menu.h"
#include "lista.h"
void mostra_menu ()
{
int opcao, valor, aux, proc,x;
no *L;
inicializar(&L);
do{
printf("1-Inserir\n");
printf("2-Remover\n");
printf("3-Listar\n");
printf("4-Procurar\n");
printf("5-Sair\n");
printf("Escolha uma Opc¸~ao\n");
scanf("%d", &opcao);
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Seja o seguinte co´digo - MENU.H
#ifndef _MENU_
#define _MENU_
#include <stdio.h>
void mostra_menu ();
#endif
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Seja o seguinte co´digo - LISTA.C
#include "lista.h"
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void inicializar( no **L )
{
*L = NULL;
}
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
void inserirInicio(no **L, int valor ){
no *p, *n;
n = ( no* )malloc( sizeof( no ));
n -> info = valor;
if( *L == NULL ){
*L = n;
n -> prox = n;
n -> ant = n;}
else{
p = (*L)->ant;
n->ant = (*L)->ant;
n -> prox = *L;
(*L) -> ant = n;
*L = n;
p->prox = n;
}
}
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
int removerInicio( no **L ){
no *p,*n;
int x;
p = *L;
if( p == NULL ){
return -1;}
else{
if( p -> ant == *L ){
x = p -> info;
*L = NULL;
free( p );
return x;}
else{
n = (*L)->ant;
x = p -> info;
*L = p -> prox;
(*L)->ant = p->ant;
n->prox = *L;
free( p );
return x;
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Seja o seguinte co´digo - LISTA.H
#ifndef _LISTA_
#define _LISTA_
#include <stdlib.h>
#include <stdio.h>
typedef struct NoTag{
int info;
struct NoTag *ant;
struct NoTag *prox;
}no;
void inicializar( no **L );
void inserirInicio( no **L, int x );
int removerInicio(no **L);
void listar( no **L );
int procurar( no **L, int proc );
void listarInver( no **L );
#endif
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Compilando e Gerando Arquivos Objeto
gcc -c menu.c
gcc -c lista.c
gcc -c principal.c
Neste momento podemos juntar tudo num executavel
chamado "saida"
gcc mostra.o menu.o lista.o principal.o -o saida
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Construc¸a˜o de Bibliotecas
Criando Bibliotecas
gcc -c menu.c
gcc -c lista.c
Cria uma biblioteca com o nome "libminha.a"
ar rs libminha.a menu.o mostra.o lista.o
Compila o programa principal, junta com a
biblioteca e gera o executavel saida
gcc principal.c -lminha -o saida
Como as bibliotecas s~ao procuradas num direto´rio
padr~ao a linha acima gerara´ um erro.
mas gcc principal.c -L./ -lminha -o saida diz que a
biblioteca sera procurada no diretorio corrente
Silvio Luiz Bragatto Boss UTFPR
Construc¸a˜o de Bibliotecas

Continue navegando