Erro "Undefined reference" na chamada das funções. [RESOLVIDO]

1. Erro "Undefined reference" na chamada das funções. [RESOLVIDO]

Davi Vieira
dvieira0801

(usa Fedora)

Enviado em 07/09/2010 - 20:19h

#include <stdio.h>
#include <stdlib.h>
#define max 50

typedef struct produtos
{
int cod;
char nome[max];
float valor;
struct produtos *anterior;
}PRODUTO;

void push(**topo);
void pop(*topo);
void listar(*topo);

int main()
{
char opt;
PRODUTO *topo;
PRODUTO *base;
int *p; //Para verificar o estado de preenchimento da pilha.
printf("Bem vindos ao programa de controle de mercadorias do Davi.");
do{
printf("\nOpcoes: \nA -> Adicionar um novo produto \nR -> Retirar o ultimo produto \nL -> Listar produtos \nS -> Sair \n");
gets(opt);

switch(opt){
case 'i': case 'I': push(&topo); break;
case 'r': case 'R': pop(*topo); break;
case 'l': case 'L': listar(*topo); break;
case 's': case 'S': break;
default: printf("Opcao invalida. Leia as opcoes novamente e digite uma opcao valida, sua mula!"); break;

}

}while ((q != 's') && (q != 'S') );

base=topo;
while (base != NULL)
{
base=topo->anterior;
free(topo);
base=topo;
}
.
.
.

Galera olhem aí o meu código. Estou tentando fazer uma pilha, e não consigo testa-la, pois esse erro persiste:
undefined reference to 'push'
undefined reference to 'pop'
undefined reference to 'listar'

O que é exatamente esse erro? o que devo fazer? Obrigado pelo espaço e desde já agradeço aos que ajudarem.



  


2. Tudo bem.

Davi Vieira
dvieira0801

(usa Fedora)

Enviado em 07/09/2010 - 21:32h

Isso eu sei, cara... Elas estão logo abaixo. coloquei um "..."pra simbolizar que o programa continua.


3. Olha aqui

Davi Vieira
dvieira0801

(usa Fedora)

Enviado em 07/09/2010 - 22:28h

Quando eu colo desse jeito:
void push(PRODUTO **topo);
void pop(PRODUTO *topo);
void listar(PRODUTO *topo);

int main()
{
char opt;
PRODUTO *topo;
PRODUTO *fim;
int *p; //Para verificar o estado de preenchimento da pilha.
printf("Bem vindos ao programa de controle de mercadorias do Davi.");
do{ char opt;
printf("\nOpcoes: \nA -> Adicionar um novo produto \nR -> Retirar o ultimo produto \nL -> Listar produtos \nS -> Sair \n");

gets(opt); switch(opt){
case 'i': case 'I': push(&topo); break;
case 'r': case 'R': pop(*topo); break;
case 'l': case 'L': listar(*topo); break;
case 's': case 'S': break;
default: ...

Apareceu o erro: incompatible type of arguments 1 of pop

e quando eu coloco:

void push(PRODUTO **topo);
void pop(PRODUTO *topo);
void listar(PRODUTO *topo);

int main()
{
char opt;
PRODUTO *topo;
PRODUTO *fim;
int *p; //Para verificar o estado de preenchimento da pilha.
printf("Bem vindos ao programa de controle de mercadorias do Davi.");
do{ char opt;
printf("\nOpcoes: \nA -> Adicionar um novo produto \nR -> Retirar o ultimo produto \nL -> Listar produtos \nS -> Sair \n");

gets(opt); switch(opt){
case 'i': case 'I': push(&topo); break;
case 'r': case 'R': pop(PRODUTO *topo); break;
case 'l': case 'L': listar(PRODUTO *topo); break;
case 's': case 'S': break;
default: ...

aparece o erro: expected expression before 'PRODUTO'

Alguma idéia?


4. Re: Erro "Undefined reference" na chamada das funções. [RESOLVIDO]

Davi Vieira
dvieira0801

(usa Fedora)

Enviado em 07/09/2010 - 22:44h

Muito obrigado, cara! Já deu certo aqui. Um abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts