Interface

Interface

por Marlon Ribas Vismari -
Número de respostas: 7
Olá Professor, tudo bem?

1. Professor, no arquivo cliente.c deverei apenas deixar o #include "polinomio.h"?

2. Acho que não entendi direito essa coisa de interface. Onde exatamente incluo o arquivo polinomio.c professor? Ou não incluo?

3. O arquivo cliente.c basicamente só vai fazer a leitura do arquivo e chamar as funções da bilbioteca? Qualquer coisa que trate da lista ligada, tudo, tratarei exatamente dentro da biblioteca.c?

Obrigado!
Em resposta à Marlon Ribas Vismari

Re: Interface

por Francisco Reverbel -
1. Não sei se entendi o "apenas"... O arquivo cliente.c deve ter um #include "polinomio.h". Além desse #include, ele precisará também do <stdio.h>. O cliente.c não deve ter uma cópia da definição de struct termo. Essa definição deve existir somente no arquivo polinomio.c.

2. Não inclui. Você compila o arquivo polinomio.c.

3. Sim, todo o tratamento das listas ligadas deve estar no arquivo polinomio.c. (Estou supondo que o nome do arquivo é polinomio.c e não biblioteca.c, mas esse é um detalhe sem importância.) Além de ler a entrada, de chamar as funções da biblioteca e de imprimir os resultados, o arquivo cliente.c terá as "variáveis da calculadora". Essas variáveis correspondem às letras minúsculas de 'a' a 'w' e devem ser implementadas usando um vetor de Polinomios com 23 posições.

4. O arquivo polinomio.c deve conter a implementação da biblioteca, ou seja, as definições das funções cujos protótipos aparecem no arquivo polinomio.h. A função main não ficará na biblioteca (arquivo polinomio.c) e sim no cliente (arquivo cliente.c).

Em resposta à Francisco Reverbel

Re: Interface

por Marlon Ribas Vismari -
Professor,
na verdade, todos os testes eu devo fazer no arquivo polinomio.c? Porque assim, eu criei uma função de teste no arquivo polinomio.h e então compilei o cliente.c onde estava incluido esse arquivo (polinomio.h), e apareceu um erro que tal função não foi definida. Ou seja, o cliente.c será apenas um código mais limpo. Não necessariamente ele vai rodar e calcular os polinomios?

Exemplo:
cliente.c - Arquivo mais limpo onde é feita apenas a leitura do arquivo entrada e então faz chamadas as funções da biblioteca.

polinomio.c - Arquivo que terá todos os protótipos das funções e, este sim faz as operações e apresenta resultados.

polinomio.h - definições.

Obrigado
Em resposta à Marlon Ribas Vismari

Re: Interface

por Francisco Reverbel -
Não entendi... Toda a função de teste que você criou está no arquivo polinomio.h? Ou só o protótipo dessa função?

Um arquivo .h não deve conter o corpo de nenhuma função, só protótipos de funções.
Em resposta à Francisco Reverbel

Re: Interface

por Marlon Ribas Vismari -
Então professor,
no esqueleto do cliente, tem apenas a inclusão do arquivo.h. Minha dúvida é: Se nesse arquivo só contém os protótipos da função, como vou rodar o cliente.c só com os protótipos? Eu não precisaria incluir a biblioteca.c para que o cliente.c rode perfeitamente?

Obrigado novamente!!
Em resposta à Marlon Ribas Vismari

Re: Interface

por Martin Ichilevici de Oliveira -
A inclusão da biblioteca.c acontece quando você compila. No gcc, você faz

gcc (...) -c biblioteca.c (isto gera o arquivo biblioteca.o)
gcc (...) -o cliente cliente.c biblioteca.o

ou

gcc (...) -o cliente cliente.c biblioteca.c

Para o Code::Blocks eu
não sei.
Em resposta à Martin Ichilevici de Oliveira

Re: Interface

por Kaonan Micadei -
No Code::Blocks é só criar um novo projeto vazio e adicionar os arquivos ao projeto. O próprio Code::Blocks gera o makefile, compila os arquivo e linka.