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!
4. No polinomio.c teremos só a "manipulação" das funções? E o int main()?
Obrigado novamente!
Obrigado novamente!
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).
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).
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
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
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.
Um arquivo .h não deve conter o corpo de nenhuma função, só protótipos de funções.
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!!
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!!
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.
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.
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.