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

Apresentações - Introdução ao PowerPoint
Apresentações - Introdução ao PowerPointApresentações - Introdução ao PowerPoint
Apresentações - Introdução ao PowerPointClausia Antoneli
 
A contribuição da sociologia para a interpretação da realidade social
A contribuição da sociologia para a interpretação  da realidade socialA contribuição da sociologia para a interpretação  da realidade social
A contribuição da sociologia para a interpretação da realidade socialMarcela Marangon Ribeiro
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Industria Cultural e Cultura de Massa
Industria Cultural e Cultura de MassaIndustria Cultural e Cultura de Massa
Industria Cultural e Cultura de MassaElisama Lopes
 
Industria cultural
Industria culturalIndustria cultural
Industria culturalpacobr
 
o que é indústria cultural
o que é indústria culturalo que é indústria cultural
o que é indústria culturalJorge Miklos
 
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)Atividades Diversas Cláudia
 
Aula 8 ideologia e luta de classes
Aula 8   ideologia e luta de classesAula 8   ideologia e luta de classes
Aula 8 ideologia e luta de classesFábio Nogueira, PhD
 
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.Sociologia - imaginacão sociologica -Prof.Altair Aguilar.
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.Altair Moisés Aguilar
 
Slides da aula de Sociologia (Luciano) sobre Divisão Social do Trabalho
Slides da aula de Sociologia (Luciano) sobre Divisão Social do TrabalhoSlides da aula de Sociologia (Luciano) sobre Divisão Social do Trabalho
Slides da aula de Sociologia (Luciano) sobre Divisão Social do TrabalhoTurma Olímpica
 
Mapa conceitual - trabalho
Mapa conceitual  - trabalhoMapa conceitual  - trabalho
Mapa conceitual - trabalhoGilberto Cotrim
 

Mais procurados (20)

Apresentações - Introdução ao PowerPoint
Apresentações - Introdução ao PowerPointApresentações - Introdução ao PowerPoint
Apresentações - Introdução ao PowerPoint
 
A contribuição da sociologia para a interpretação da realidade social
A contribuição da sociologia para a interpretação  da realidade socialA contribuição da sociologia para a interpretação  da realidade social
A contribuição da sociologia para a interpretação da realidade social
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Industria Cultural e Cultura de Massa
Industria Cultural e Cultura de MassaIndustria Cultural e Cultura de Massa
Industria Cultural e Cultura de Massa
 
Identidade e Alteridade
Identidade e AlteridadeIdentidade e Alteridade
Identidade e Alteridade
 
Atelier Feedly
Atelier FeedlyAtelier Feedly
Atelier Feedly
 
Motherboard
MotherboardMotherboard
Motherboard
 
Topico 28 industria cultural indstriacultural
Topico 28 industria cultural indstriaculturalTopico 28 industria cultural indstriacultural
Topico 28 industria cultural indstriacultural
 
Sociologia clássica 1
Sociologia clássica 1Sociologia clássica 1
Sociologia clássica 1
 
Industria cultural
Industria culturalIndustria cultural
Industria cultural
 
Prova de sociologa industria cultural 3.doc
Prova de sociologa industria cultural 3.docProva de sociologa industria cultural 3.doc
Prova de sociologa industria cultural 3.doc
 
Obsolescência programada
Obsolescência programadaObsolescência programada
Obsolescência programada
 
o que é indústria cultural
o que é indústria culturalo que é indústria cultural
o que é indústria cultural
 
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)
Atividade sobre massificação (sociolog, filosof, geog, hist, port, arte)
 
Cibercultura e educação
Cibercultura e educação Cibercultura e educação
Cibercultura e educação
 
Windows 7
Windows 7Windows 7
Windows 7
 
Aula 8 ideologia e luta de classes
Aula 8   ideologia e luta de classesAula 8   ideologia e luta de classes
Aula 8 ideologia e luta de classes
 
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.Sociologia - imaginacão sociologica -Prof.Altair Aguilar.
Sociologia - imaginacão sociologica -Prof.Altair Aguilar.
 
Slides da aula de Sociologia (Luciano) sobre Divisão Social do Trabalho
Slides da aula de Sociologia (Luciano) sobre Divisão Social do TrabalhoSlides da aula de Sociologia (Luciano) sobre Divisão Social do Trabalho
Slides da aula de Sociologia (Luciano) sobre Divisão Social do Trabalho
 
Mapa conceitual - trabalho
Mapa conceitual  - trabalhoMapa conceitual  - trabalho
Mapa conceitual - trabalho
 

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

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
 
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
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
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
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
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
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 

Último (20)

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.
 
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...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .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
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
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...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 

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