'valor'未声明(首次使用此功能)

时间:2017-03-05 05:14:36

标签: c function file struct undeclared-identifier

#include<stdio.h>
#include"push.c"
#include"pop.c"
#include"listadopila.c"
#include"structpila.c"

int main ()
{
    struct pila valor;
    void push();
    int  pop();
    void listado();
    int opcion=0;
    valor.tope= -1;
    int continuar;

    printf ("=====ESTRUCTURA DE PILA=====\n\n");
    do
        {
        printf ("Ingresa tu opcion:\n");
        printf ("1) Para push\n");
        printf ("2) Para pop\n");
        printf ("3) Para mostrar tu pila\n");
        printf ("4) Para salir.\n");
        printf ("\n");

        printf ("Ingresa tu opci%cn\n",163);
        scanf("%d", &opcion);
        switch(opcion)
        {
        case 1:
            push(valor);
            break;
        case 2:
            pop(valor);
            break;
        case 3:
            listado(valor);
            break;
        default:
            printf("Opción no válida.\n");
                    }
            printf("\n¿Desea continuar comprando? Pulse cualquier tecla para si y N para no: ");
            getchar();
            scanf("%d",&continuar); 
            continuar=getchar();
    }

            while(continuar!='n'&&continuar!='N');
        } 

在其他文件中,我定义了这样的结构:

struct pila
{
int pila[5];
int tope;
}valor;

我的功能是这样的:

int pop()
{
    int numero;
    if (valor.tope==- 1)
    {
        printf ("La pila esta vacia.\n");
        return (valor.tope);
    }
    else
    {
        numero=valor.pila[valor.tope];
        printf("El elemento que haz eliminado es= %d", valor.pila[valor.tope]);
        valor.tope=valor.tope -1;
    }
    return(numero);
}

我尝试更改main内部和外部的struct,并将函数写入switch case,如:pop(valor);但它也不起作用。同样在每个函数的文件中,我试图编写类似&#34; int pop(struct pila valor)&#34;的函数。但编译器说我需要为valor添加一个长度,问题是当我在同一个文件中编写代码时,编译成功完成,所以问题是当我尝试将结构与其他函数链接时。

任何帮助?

0 个答案:

没有答案