Aula 11 Bibliotecas de função



Documentos relacionados
Agenda. A interface de Agendamento é encontrada no Modulo Salão de Vendas Agendamento Controle de Agendamento, e será apresentada conforme figura 01.

Administração de Redes Servidores de Aplicação

Manual. Autorizador da UNIMED

COMO CONFIGURAR SUA(S) CONTA(S) NO MICROSOFT OFFICE OUTLOOK

Linguagem de. Aula 07. Profa Cristiane Koehler

Processo TCar Balanço Móbile

Boletim Técnico. CAGED Portaria 1129/2014 MTE. Procedimento para Implementação. Procedimento para Utilização

2º Passo Criar a conexão via ODBC (Object DataBase Conection)

FKcorreiosg2_cp1 - Complemento Transportadoras

Novo Sistema Almoxarifado

UNIVERSIDADE FEDERAL DE RONDÔNIA

Event Viewer - Criando um Custom View

Exercícios de Java Aula 17

ALTERAÇÕES NO SISTEMA ORION

Tutorial de criação de um blog no Blogger

Código: Data: Revisão: Página: SUMÁRIO

MANUAL DE INSTALAÇÃO

Variáveis e Tipo de Dados

Capítulo V. Técnicas de Análise de Circuitos

SGCT - Sistema de Gerenciamento de Conferências Tecnológicas

Informática II INFORMÁTICA II

Organização de Computadores Digitais. Cap.10: Conjunto de Instruções: Modos de Endereçamento e Formatos

Copyright GrupoPIE Portugal, S.A. Manual Utilizador

HARDWARE e SOFTWARE. O Computador é composto por duas partes: uma parte física (hardware) e outra parte lógica (software).

GUIA DE USO DO TECLADO VIRTUAL

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Programação. Para estas funções, é necessário incluir a biblioteca: Seguem as operações mais comuns com arquivos.

Dissídio Retroativo. Cálculos INSS, FGTS e geração da SEFIP

ANÁLISE DE DESEMPENHO DOS GRAFICOS DE x E R.

Transformadores. Transformadores 1.1- INTRODUÇÃO 1.2- PRINCÍPIO DE FUNCIONAMENTO

TESTE DE SOFTWARE (Versão 2.0)

Manual de Instalação

H. Problemas/outras situações na ligação com a Segurança Social;

Manual de Configuração

1 Criando uma conta no EndNote

MANUAL DO USUÁRIO FINANCEIRO

Sistema OnixNet / TrucksNet Contagem de Estoque pelas oficinas

1. Objetivo: Lançar novo produto para bloqueio do veículo via celular GSM e rastreador GSM com localização por GPS.

Manual do Novo Pátio. Revenda. Versão 2.0

SOGILUB.NET MANUAL DO UTILIZADOR

API de Integração E-Zoop Documentação de uso

Processo de envio de de marketing

CRC-MG Central de Registro Civil de Minas Gerais Certidão Online - Serventia. Manual do usuário

Matemática / 1ª série / ICC Prof. Eduardo. Unidade 1: Fundamentos. 1 - Introdução ao Computador

Lugar Geométrico das Raízes. Lugar Geométrico das Raízes. Lugar Geométrico das Raízes

Controle de Atendimento de Cobrança

Workflow. José Palazzo Moreira de Oliveira. Mirella Moura Moro

Banco de Dados. DIEGO BARCELOS RODRIGUES 2015 (2015/1) 1. Ifes - Campus Cachoeiro de Itapemirim

Eventos Extras - Descontos PP - Contestação PP - Faturas Avulsas - Eventos Programados FP x PEONA maio de Versão 1.0

CAPÍTULO 10 TRANSLAÇÃO E ROTAÇÃO DE EIXOS

De acordo com estes critérios, uma sugestão de formato para nomes de tablespaces no banco de dados Oracle é a seguinte: S_O_T, onde:

Manual de Operação WEB SisAmil - Gestão

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

INTRODUÇÃO A LOGICA DE PROGRAMAÇÃO

Tutorial Sistema Porto Sem Papel

SMART CONTROLE DO ESTOQUE DE GONDOLA

3 Fundamentos do Comportamento dos Hidrocarbonetos Fluidos

DISCIPLINA: Matemática. MACEDO, Luiz Roberto de, CASTANHEIRA, Nelson Pereira, ROCHA, Alex. Tópicos de matemática aplicada. Curitiba: Ibpex, 2006.

SITAF - Manual de Utilizador

PLANIFICAÇÃO A MÉDIO PRAZO

Orientações para a Escrituração Contábil Digital (Sped Contábil) Versão Soluções SPDATA

Vensis Manutenção. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Aplicação Hibernate1 no NetBeans

Tutorial: Aprenda a criar seu próprio makefile. Darcamo (Forúns Ubuntu)

Número de cédula profissional (se médico); Nome completo; 20/06/2014 1/7

T12 Resolução de problemas operacionais numa Companhia Aérea

BANKSYNC ALGORITMO PARA GERAÇÃO DO CÓDIGO DE BARRAS (DLL)

Profa. Dra. Silvia M de Paula

PM 3.5 Versão 2 PdC Versão 1

WEBSITE LOJAS JOMÓVEIS

Modelo de Comunicação. Programa Nacional para a Promoção da Saúde Oral

Vensis PCP. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Perguntas frequentes sobre o Programa Banda Larga nas Escolas

Questão 48. Questão 46. Questão 47. Questão 49. alternativa A. alternativa B. alternativa C

EMPORIO SHOP GUIA RÁPIDO. Windows Mobile M68

PDF Livre com o Ghostscript

10. Escreva um programa que leia um texto e duas palavras e substitua todas as ocorrências da primeira palavra com a segunda palavra.

Academia FI Finanças

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Questão 1. Questão 3. Questão 2. Questão 4. Resposta. Resposta. Resposta. ATENÇÃO: Escreva a resolução COM- PLETA de cada questão no espaço reservado

Questão 1. Questão 3. Questão 2. Resposta. Resposta

Descrição Este manual tem como principal finalidade, ajudar os usuários do setor de Patrimônios nos cadastros e movimentação.

Disciplina: Programação III Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 184

Utilizando o Calculador Etelj Velocidade do Som no Ar

Transcrição:

Universidade Federal d Espírit Sant Centr Tecnlógic Departament de Infrmática Prgramaçã Básica de Cmputadres Prf. Vítr E. Silva Suza Aula 11 Biblitecas de funçã 1. Intrduçã À medida que um prgrama cresce e fica mais cmplex, númer de funções e de linhas de códig em um únic arquiv pde fazer cm que sua cmpreensã e manutençã (adiçã de nvas funções e crreçã de errs) fique mais difícil. Para facilitar, cmpiladr C permite a separaçã d códig em arquivs diferentes, chamads móduls. 2. Separaçã d códig e inclusã Desde tutrial de C vims a diretiva de inclusã presente n códig, para imprtar as funções da bibliteca padrã de perações de entrada e saída (stdi.h): #include <stdi.h> /*... */ As biblitecas padrã d C encntram-se em um diretóri específic que cmpiladr cnhece. A especificar nme d arquiv entre < e >, cmpiladr prcura naquele diretóri; É pssível, prém, especificar uma inclusã a partir d diretóri atual, usand "" a invés de <>. Supnha arquiv prg.c: // Arquiv prg.c #include "minhabib.c" minhafunc(); Para códig acima funcinar, a funçã minhafunc() tem que ser definida n arquiv minhabib.c, que deve se encntrar na mesma pasta d arquiv prg.c: // Arquiv minhabib.c #include <stdi.h> vid minhafunc() { printf("minhafunc() fi chamada!\n"); O cmpiladr trata a inclusã de minhabib.c em prg.c cm se td códig estivesse num arquiv só (n cas, prg.c). Para cmpilar, prtant, basta chamar cmpiladr cm de cstume: gcc - prg prg.c Esse prcess, n entant, pssui algumas falhas. Duas das quais: Qualquer mdificaçã ns arquivs envlvids requer uma recmpilaçã de td códig. Para prgramas muit grandes, iss pde ser um prcess demrad (de minuts a hras); Nã há flexibilidade para substituir uma implementaçã de um cnjunt de funções pr utra diferente.

Universidade Federal d Espírit Sant Centr Tecnlógic Departament de Infrmática Prgramaçã Básica de Cmputadres Prf. Vítr E. Silva Suza 3. Separaçã em móduls É mais recmendad criar um módul, separand a bibliteca de funções em dis arquivs: Arquiv de declarações u arquiv cabeçalh (header) extensã.h: declara as funções existentes naquela bibliteca, prém nã prvê sua implementaçã; Arquiv de definições/implementações u arquiv de códig extensã.c: define a implementaçã de tdas as funções declaradas n arquiv cabeçalh; Cas a bibliteca de funções utilize tips de dads definids pel usuári, estes usualmente sã definids n arquiv cabeçalh. Tant arquiv da bibliteca de funções quant prgrama principal devem imprtar arquiv cabeçalh, para garantir que a funçã implementada na bibliteca e chamada n prgrama seja a mesma (mesm nme, parâmetrs e tip de retrn); Exempl: // Arquiv minhabib.h vid minhafunc(); // Arquiv minhabib.c #include <stdi.h> vid minhafunc() { printf("minhafunc() fi chamada!\n"); // Arquiv prg.c minhafunc(); Neste cas, cm prgrama principal imprta smente cabeçalh e nã cntém a definiçã (implementaçã) da funçã, ele nã pde ser cmpilad szinh. A cmpilaçã se dá em 2 passs: gcc -c minhabib.c gcc - prg prg.c minhabib. A cmpilaçã cm a pçã -c diz a cmpiladr que ali nã existe um prgrama inteir (e, prtant, ele nã prcura pela funçã main()), mas apenas uma bibliteca de funções. O cmpiladr gera um arquiv. (chamad de arquiv bjet) cm mesm nme da bibliteca; Desta maneira, se precisarms mdificar smente prgrama principal, a bibliteca de funções nã terá que ser recmpilada. E se tiverms 100 biblitecas de funçã, se uma delas precisar ser mdificada, smente ela e prgrama principal precisarã ser recmpilads; Se quiserms mudar a implementaçã de minhabib.c para minhabib2.c, se arquiv cabeçalh permanecer mesm, basta trcar s cmands de cmpilaçã. O prgrama principal nã precisará ser alterad;

Universidade Federal d Espírit Sant Centr Tecnlógic Departament de Infrmática Prgramaçã Básica de Cmputadres Prf. Vítr E. Silva Suza 4. Inclusã duplicada e cndições de guarda À medida que prgrama cresce e nvas biblitecas surgem, a rede de dependências entre as biblitecas e prgrama principal fica mais cmplexa; Pde acntecer a seguinte situaçã: // Arquiv utrabib.h typedef struct TMeuTip { int inteir; flat real; char string[100]; *MeuTip; vid utrafunc(meutip param); // Arquiv utrabib.c #include <stdi.h> #include "utrabib.h" vid utrafunc(meutip param) { printf("utrafunca() fi chamada!\n"); // Arquiv minhabib.h vid minhafunc(meutip param); // Arquiv minhabib.c #include <stdi.h> #include "utrabib.h" vid minhafunc(meutip param) { printf("minhafunc() fi chamada!\n"); // Arquiv prg.c #include "utrabib.h" MeuTip var; minhafunc(var); utrafunc(var);

Universidade Federal d Espírit Sant Centr Tecnlógic Departament de Infrmática Prgramaçã Básica de Cmputadres Prf. Vítr E. Silva Suza Nte que prgrama principal inclui cabeçalh de utrabib.h duas vezes, uma diretamente e utra indiretamente (incluir minhabib.h e este inclui utrabib.h); A tentar cmpilar prgrama principal, seguinte err é apresentad: errr: redefinitin f struct TMeuTip errr: redefinitin f typedef MeuTip Para evitar iss, usams cndições de guarda: diretivas d cmpiladr sã adicinadas a arquiv cabeçalh para evitar que ele seja incluíd duas vezes, desta frma: // Arquiv utrabib.h #ifndef OUTRABIB_H #define OUTRABIB_H typedef struct TMeuTip { int inteir; flat real; char string[100]; *MeuTip; vid utrafunc(meutip param); #endif A diretiva #ifndef faz cm que cmpiladr inclua arquiv cabeçalh n pnt nde ele fi chamad smente se a cnstante OUTRABIB_H nã estiver definida; Cas ela realmente nã esteja, a primeira cisa que cabeçalh faz é defini-la, sem valr algum (prém, está definida); Da próxima vez que cabeçalh fr incluíd, #ifndef retrnará fals e códig d cabeçalh nã será adicinad n pnt de inclusã. 5. Cnstruçã de prgramas cm Makefile Também pr cnta d cresciment d númer de biblitecas de funçã, prcess de cnstruçã d prgrama (cmpilaçã ds arquivs) fica mais cmplicad; Uma ferramenta chamada make auxilia na autmaçã d prcess de cnstruçã: all: prg prg: prg.c minhabib.h utrabib.h minhabib. utrabib. gcc - prg prg.c minhabib. utrabib. minhabib.: minhabib.c minhabib.h utrabib.h gcc -c minhabib.c utrabib.: utrabib.c utrabib.h gcc -c utrabib.c clean: rm -rf *. prg

Universidade Federal d Espírit Sant Centr Tecnlógic Departament de Infrmática Prgramaçã Básica de Cmputadres Prf. Vítr E. Silva Suza O arquiv acima chama-se Makefile. Funcina da seguinte maneira: Os terms antes de : sã s alvs. Quand digitams make alv ele prcura alv na lista e executa s cmands; Os terms após : sã as dependências. A tentar prduzir um alv, make tenta primeir satisfazer as dependências, que pdem ser utrs alvs; Abaix da declaraçã ds alvs e dependências estã s cmands. É essencial que cada linha de cmand cmece cm uma tabulaçã; O primeir alv deve sempre ser all, pis é alv padrã. A digitar cmand make, ele cmeçará d alv all. O alv clean também é muit cmum, ele apaga arquivs que sã gerads pel prcess de cnstruçã; Para s demais alvs, utilizams s nmes ds arquivs prduzids a cada pass d prcess de cmpilaçã; Na lista de dependências devems listar s arquivs que sã incluíds cm #include n códig-fnte que está send cmpilad. Desta frma, se um destes arquivs sfrer alteraçã em relaçã à última cmpilaçã, make sabe que deve repetir s cmands daquele alv. D cntrári, ele nã gasta temp a ta; Também devems incluir s arquivs usads n cmand de cmpilaçã (códigs fnte e arquivs bjet) pel mesm mtiv acima (saber quand recmpilar e quand nã precisa). 6. Tips abstrats de dads Utilizar cm base slides d curs rápid de C, a partir d slide 194.