Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maycon X Raquelzinha

Errro Unknown type name

Recommended Posts

Pessoal fiz o pequeno codigo abaixo e quando tento compilar aparece o sequinte erro: Unknown type name 'cadproduto'

Como eu resolvo isso? Sou iniciante e não conheço muito de programação, obrigado.

#include <stdio.h>
struct cadproduto
{
int codigo;
char nome[30];
float valor;
int qtd;
};
cadproduto produto;
int main (void){
scanf ("%d", &produto.codigo);
scanf ("%s", produto.nome);
printf ("Codigo %d \n", produto.codigo);
printf ("Nome %s\n", produto.nome);
return (0);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque "cadproduto produto;" por "struct cadproduto produto;".

 

Ou então, se não quiser ter a expressão "struct" na frente, precisa especificar um tipo definido:

typedef struct
{
int codigo;
char nome[30];
float valor;
int qtd;
} cadproduto;

Dessa forma, poderá chamá-la diretamente, como você está fazendo.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geralmente estruturas definidas com typedef tem seu nome escrito todo em uppercase para diferenciar-se de outros tipos (int, char, float...).

Se eu visse somente: "cadproduto produto;".
Eu diria: O que é cadproduto?

typedef int cadproduto; ?
typedef int* cadproduto; ?
typedef short cadproduto; ?
typedef short* cadproduto; ?
typedef unsigned cadproduto; ?
typedef unsigned* cadproduto; ?
typedef signed cadproduto; ?
typedef signed* cadproduto; ?
...
typdef char* cadproduto; ?
union cadproduto{...}; ?
enum cadproduto{...}; ?
struct cadproduto{...}; ?

Se fosse "CADPRODUTO produto;" de cara já saberia que se trata de uma estrutura de dados.
Ou melhor, se não tivesse omitido a palavra struct com o uso de typedef, estaria mais óbvio ainda.


Bom amigo, fica a dica!
É quando se está aprendendo a linguagem que deve aprender essas coisas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.