Ir para conteúdo
Fórum Script Brasil
  • 0

como criar um arquivo.h


elimadasilva

Pergunta

Boa noite,

eu fiz esse arquivo em c com várias funções. para receber dois pontos e calcular a distância.

agora preciso criar um arquivo.h

dúvida:

Eu tenho que colocar cada função dentro de um arquivo.c?

e a estrutura global no começo? eu crio um arquivo para ela também?

/* Captura e imprime as coordenadas x,y e z de um ponto qualquer */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct ponto {
float x;
float y;
float z;
};
struct pontoum {
float xum;
float yum;
float zum;
};
void imprime (struct ponto *pp)
{
  printf("O ponto fornecido foi: (%.2f,%.2f,%.2f)\n", pp->x, pp->y,pp->z);
}
void imprimeum (struct pontoum *ppum)
{
  printf("O ponto fornecido foi: (%.2f,%.2f,%.2f)\n", ppum->xum, ppum->yum,ppum->zum);
}
void capturaum (struct pontoum *ppum)
{
printf("Digite a coordenada x do ponto 1:\n ");
scanf("%f", &ppum->xum);
printf("Digite a coordenada y do ponto 1:\n ");
scanf("%f", &ppum->yum);
printf("Digite a coordenada z do ponto 1:\n ");
scanf("%f", &ppum->zum);
}
void captura (struct ponto *pp)
{
printf("Digite a coordenada x do ponto 2:\n ");
scanf("%f", &pp->x);
printf("Digite a coordenada y do ponto 2:\n ");
scanf("%f", &pp->y);
printf("Digite a coordenada z do ponto 2:\n ");
scanf("%f", &pp->z);
}
void calcula (struct pontoum *ppum,struct ponto *pp)
{
float dx = pp->x - ppum->xum;
float dy = pp->y - ppum->yum;
float dz = pp->z - ppum->zum;
float dist = sqrt((dx*dx)+ (dy*dy)+(dz*dz));
printf("(%.2f, %.2f, %.2f) \n ",dx, dy, dz);
printf("A distancia entre os pontos fornecidos e: %.2f \n ",dist);
}
int main()
{
struct pontoum pum;
struct ponto p;
capturaum(&pum);
imprimeum(&pum);
captura(&p);
imprime(&p);
calcula(&pum,&p);
return 0;
}

 

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

você cria um "console application" chama ele como você quiser, porem que termine com a extensão .h, um exemplo é util.h.

Pega as funções e joga elas num aquivo "funçoes.c". Ao principio do funcoes.h você faz o include do util.h, e e todos os outros includes que precisar para que suas funções funcionem, e debaixo dos includes pega as suas funções.

agora você cria o main.c, no principio faz o include de stdio normalmente, e todas os includes que precisar, por ultimo você faz o include das estruturas(util.h). logo depois você tem que por os "protótipos das funções" e por ultimo você cria o main.

Si der algum erro tipo redefinição blablabla, é por que você tem que fazer uso do sistema de "guard" no util.h, o sistema guard é mais ou menos como una especie de "proteção contra dupla inclusão". Para que ele serve? Bem, Pense o que vai acontecer si você fizer int n; 2 vezes no seu programa, acontecerá uma dupla definiçao, e o mesmo acontece com uma dupla inclusão, então você tem que por todo o conteúdo do arquivo util.h dentro disso:

#ifndef UTIL_H
#define UTIL_H

//Aqui as estruturas

#endif // UTIL_H

Quer dizer que si util.h não estiver definido então o programa o definirá, porem si ele já existir ele não o incluirá 2 vezes, protegendo assim o sistema contra dupla inclusão.

 

Si você quiser eu te posso passar um projeto feito em codeblocs, porem os passos são esses.

 

Espero que sirva. Sorte!

Editado por vangodp
Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Vangodp.

você cria um "console application" chama ele como você quiser, porem que termine com a extensão .h, um exemplo é util.h.

Pega as funções e joga elas num aquivo "funçoes.c". Ao principio do funcoes.h você faz o include do util.h, e e todos os outros includes que precisar para que suas funções funcionem, e debaixo dos includes pega as suas funções.

eu já tenho um arquivo funções.c com todas as funções dentro. eu faço um arquivo funções.h do mesmo jeito? o que escrevo dentro dele? só os nomes de cada função tipo:

void captura (struct ponto *pp)
 

 

Si você quiser eu te posso passar um projeto feito em codeblocs, porem os passos são esses.

 

Espero que sirva. Sorte!

Se você puder eu agradeço.

Obrigada. 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...