Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
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