SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Segurança física e lógica e análise de vunerabilidade (abnt)
Segurança física e lógica e análise de vunerabilidade (abnt)Segurança física e lógica e análise de vunerabilidade (abnt)
Segurança física e lógica e análise de vunerabilidade (abnt)Diego BBahia
 
Análise de conteúdo documental: a recuperação da informação.
Análise de conteúdo documental: a recuperação da informação.Análise de conteúdo documental: a recuperação da informação.
Análise de conteúdo documental: a recuperação da informação.Pedro Abreu Peixoto
 
fontes de informação
fontes de informaçãofontes de informação
fontes de informaçãoIngridy Dias
 
Aula 07 8 periféricos de um
Aula 07  8 periféricos de umAula 07  8 periféricos de um
Aula 07 8 periféricos de umMarcos Basilio
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começouguestaa94fe
 
Servidores de aplicação apresentação
Servidores de aplicação apresentaçãoServidores de aplicação apresentação
Servidores de aplicação apresentaçãoMárcia Catunda
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open SourceDiogo Silva
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignWellington Oliveira
 
Planificacao Anual TIC - 8º Ano 2021_22.pdf
Planificacao  Anual TIC - 8º Ano 2021_22.pdfPlanificacao  Anual TIC - 8º Ano 2021_22.pdf
Planificacao Anual TIC - 8º Ano 2021_22.pdfNuno Pereira
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02thomasdacosta
 
Navegação e Arquitetura de Informação
Navegação e Arquitetura de InformaçãoNavegação e Arquitetura de Informação
Navegação e Arquitetura de InformaçãoLuiz Agner
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Permisos de archivos completo
Permisos de archivos completoPermisos de archivos completo
Permisos de archivos completoGrecia Machaca
 
Representação da informação
Representação da informaçãoRepresentação da informação
Representação da informaçãoIgor Falce
 
Exercicios-word-questoes-2013-cespe-35-imprimir
Exercicios-word-questoes-2013-cespe-35-imprimirExercicios-word-questoes-2013-cespe-35-imprimir
Exercicios-word-questoes-2013-cespe-35-imprimirMarco Guimarães
 

Mais procurados (20)

Segurança física e lógica e análise de vunerabilidade (abnt)
Segurança física e lógica e análise de vunerabilidade (abnt)Segurança física e lógica e análise de vunerabilidade (abnt)
Segurança física e lógica e análise de vunerabilidade (abnt)
 
Roteamento
RoteamentoRoteamento
Roteamento
 
Análise de conteúdo documental: a recuperação da informação.
Análise de conteúdo documental: a recuperação da informação.Análise de conteúdo documental: a recuperação da informação.
Análise de conteúdo documental: a recuperação da informação.
 
fontes de informação
fontes de informaçãofontes de informação
fontes de informação
 
Aula 07 8 periféricos de um
Aula 07  8 periféricos de umAula 07  8 periféricos de um
Aula 07 8 periféricos de um
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começou
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
Servidores de aplicação apresentação
Servidores de aplicação apresentaçãoServidores de aplicação apresentação
Servidores de aplicação apresentação
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - Design
 
Planificacao Anual TIC - 8º Ano 2021_22.pdf
Planificacao  Anual TIC - 8º Ano 2021_22.pdfPlanificacao  Anual TIC - 8º Ano 2021_22.pdf
Planificacao Anual TIC - 8º Ano 2021_22.pdf
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Navegação e Arquitetura de Informação
Navegação e Arquitetura de InformaçãoNavegação e Arquitetura de Informação
Navegação e Arquitetura de Informação
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Permisos de archivos completo
Permisos de archivos completoPermisos de archivos completo
Permisos de archivos completo
 
Representação da informação
Representação da informaçãoRepresentação da informação
Representação da informação
 
Exercicios-word-questoes-2013-cespe-35-imprimir
Exercicios-word-questoes-2013-cespe-35-imprimirExercicios-word-questoes-2013-cespe-35-imprimir
Exercicios-word-questoes-2013-cespe-35-imprimir
 
Introducao as rede de computadores
Introducao as rede de computadoresIntroducao as rede de computadores
Introducao as rede de computadores
 
Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!
 

Semelhante a Laboratório de Programação I: Construção de bibliotecas em C

Tutorial Programando C no Linux
Tutorial Programando C no LinuxTutorial Programando C no Linux
Tutorial Programando C no LinuxJoao Gonçalves
 
Apostilainventorpro112 120903144344-phpapp02
Apostilainventorpro112 120903144344-phpapp02Apostilainventorpro112 120903144344-phpapp02
Apostilainventorpro112 120903144344-phpapp02Josemario Marques Silva
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-netSandra Rocha
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETJosé Corrêa Viana
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasLuiz Arthur
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Natan Moraes
 
Haskell aula1 apresentação
Haskell aula1 apresentaçãoHaskell aula1 apresentação
Haskell aula1 apresentaçãoCRISLANIO MACEDO
 
Introdução ao Spider CPM (2)
Introdução ao Spider CPM (2)Introdução ao Spider CPM (2)
Introdução ao Spider CPM (2)Peter Mello
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FilePaulo Brito
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 

Semelhante a Laboratório de Programação I: Construção de bibliotecas em C (20)

Tutorial Programando C no Linux
Tutorial Programando C no LinuxTutorial Programando C no Linux
Tutorial Programando C no Linux
 
Apostilainventorpro112 120903144344-phpapp02
Apostilainventorpro112 120903144344-phpapp02Apostilainventorpro112 120903144344-phpapp02
Apostilainventorpro112 120903144344-phpapp02
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando Programas
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
 
Haskell aula1 apresentação
Haskell aula1 apresentaçãoHaskell aula1 apresentação
Haskell aula1 apresentação
 
Introdução ao Spider CPM (2)
Introdução ao Spider CPM (2)Introdução ao Spider CPM (2)
Introdução ao Spider CPM (2)
 
15. introducao ao c++
15. introducao ao c++15. introducao ao c++
15. introducao ao c++
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe File
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Haskell
HaskellHaskell
Haskell
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 

Mais de Alex Camargo

Escola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaEscola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaAlex Camargo
 
Escola Bíblica - Demonologia
Escola Bíblica - DemonologiaEscola Bíblica - Demonologia
Escola Bíblica - DemonologiaAlex Camargo
 
Python para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosPython para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosAlex Camargo
 
A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?Alex Camargo
 
IA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasIA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasAlex Camargo
 
Introdução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaIntrodução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaAlex Camargo
 
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!Alex Camargo
 
Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Alex Camargo
 
Empatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoEmpatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoAlex Camargo
 
Alta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlex Camargo
 
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeBioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeAlex Camargo
 
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoInteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoAlex Camargo
 
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)Alex Camargo
 
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Alex Camargo
 
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoFake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoAlex Camargo
 
PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020Alex Camargo
 
Ia versus covid 19 - alex
Ia versus covid 19 - alexIa versus covid 19 - alex
Ia versus covid 19 - alexAlex Camargo
 
2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial IntelligenceAlex Camargo
 
Aula 5 - Considerações finais
Aula 5 - Considerações finaisAula 5 - Considerações finais
Aula 5 - Considerações finaisAlex Camargo
 
Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Alex Camargo
 

Mais de Alex Camargo (20)

Escola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaEscola Bíblica - Eclesiologia
Escola Bíblica - Eclesiologia
 
Escola Bíblica - Demonologia
Escola Bíblica - DemonologiaEscola Bíblica - Demonologia
Escola Bíblica - Demonologia
 
Python para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosPython para finanças: explorando dados financeiros
Python para finanças: explorando dados financeiros
 
A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?
 
IA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasIA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínas
 
Introdução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaIntrodução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurança
 
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
 
Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)
 
Empatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoEmpatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom Samaritano
 
Alta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem pratica
 
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeBioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
 
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoInteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
 
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
 
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
 
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoFake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
 
PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020
 
Ia versus covid 19 - alex
Ia versus covid 19 - alexIa versus covid 19 - alex
Ia versus covid 19 - alex
 
2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence
 
Aula 5 - Considerações finais
Aula 5 - Considerações finaisAula 5 - Considerações finais
Aula 5 - Considerações finais
 
Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)
 

Último

Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 

Último (20)

Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
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