Ir ao conteúdo
  • Cadastre-se
ajob

Problema com struct no .h em C

Recommended Posts

Galera estou fazendo um trabalho da faculdade em que resolvi criar um .h só para as structs do programa, porém na hora de compilar o main ele diz que tem um erro no Estruturas.h(nome do .h que criei) e mandar eu redefinir as as structs, alguem pode me dizer o que é?

imagemuof.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Codigo

Estruturas.h


struct Circulos{
char cor[10];
char nome[10];
float raio;
float area;
struct Circulos *proximo;
struct Circulos *anterior;
};



struct Quadrados{
char cor[10];
char nome[10];
float lado;
float area;
struct Quadrados *proximo;
struct Quadrados *anterior;
};

struct Triangulos{
char cor[10];
char nome[10];
float base;
float altura;
float area;
struct Triangulos *proximo;
struct Triangulos *anterior;
};

typedef struct Circulos Circulo;//Circulo
typedef struct Quadrados Quadrado;//Quadrado
typedef struct Triangulos Triangulo;//Triangulo

main

#include <stdio.h>
#include <Estruturas.h>

main(){
struct Circulos *p;
struct Circulos c1;
Quadrado q1;
Triangulo t1;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça a seguinte modificação:

Codigo

Estruturas.h


typedef struct Circulos{
char cor[10];
char nome[10];
float raio;
float área;
struct Circulos *proximo;
struct Circulos *anterior;
} Circulos;



typedef struct Quadrados{
char cor[10];
char nome[10];
float lado;
float área;
struct Quadrados *proximo;
struct Quadrados *anterior;
}Quadrados;

typedef struct Triangulos{
char cor[10];
char nome[10];
float base;
float altura;
float área;
struct Triangulos *proximo;
struct Triangulos *anterior;
}Triangulos;


main


#include "Estruturas.h"

main(){
Circulos *p;
Circulos c1;
Quadrado q1;
Triangulo t1;

}
#include <stdio.h>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, ajob.

Esse código aqui compilou, mas, cuidado com os nomes das variáveis e o HEADER das estruturas precisa ser incluído no projeto.

No DEVC, você cria o projeto, e com o botão direito do mouse clica no nome do projeto, na janela PROJECT, e clica em ADD TO PROJECT, e adiciona o seu HEADER onde estão as definições das estruturas.

O nome das variáveis tb não podem ter acentos.

[]'s


#include <stdlib.h>
#include "C:\Documents and Settings\Desktop\structs.H"


int main(int argc, char *argv[])
{
Circulo *p;
Circulo c1;
Quadrado q1;
Triangulo t1;

q1.lado = 0.0;


system("PAUSE");
return 0;
}
#include <stdio.h>


char cor[10];
char nome[10];
float raio;
float area;
struct Circulos *proximo;
struct Circulos *anterior;
} Circulo;



typedef struct Quadrados{
char cor[10];
char nome[10];
float lado;
float area;
struct Quadrados *proximo;
struct Quadrados *anterior;
} Quadrado;

typedef struct Triangulos{
char cor[10];
char nome[10];
float base;
float altura;
float area;
struct Triangulos *proximo;
struct Triangulos *anterior;
} Triangulo;
typedef struct Circulos{

OBS: coisa estranha! Eu acho que o editor do fórum deve ter algum tipo de corretor ortográfico! As variáveis AREA, nas estruturas DEVEM ser sem acento. E estão sendo exibidas COM acento. Cuidado com isso! QUE COISA MAIS BIZARRA!

Editado por Maurício2006

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara provavelmente você tem mas de um arquivo .c ou .cpp incluindo o mesmo .h, e então da redefinilção das estruturas. Uma solulção para este problema é o seguinte:

antes de tudo no seu .h você deve digitar:

#ifndef _NOME_DO_ARQUIVO_H_

#define _NOME_DO_ARQUIVO_H_

...

no final digite

#endif

com isto você fala para o compilador se nao esa definido o simbolo qeu v defini então defina, dai quando for o segundo .c incluir este .ha ja vai estar definido então ele nao define novamente e assim nao da redefinição.

atte

Smaug

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×