错误消息预期标识符或'(''''''''''''''''''''''''''''

时间:2014-09-19 06:41:36

标签: c stack token

你好,我在执行时遇到以下程序错误。 根据我这个程序是完全正确的,但在gcc编译器上运行时,显示一条错误消息。 请看一下代码

#include<stdio.h>
#define MAXSIZE 5
{
    int stk[MAXSIZE];
    int top;
};
typedef struct stack STACK;
STACK s;

void push(void);
int pop(void);
void display(void);
void main()
{
    int choice;
    int option=1;
    s.top=-1;

    while(option)
    {
        printf("___________________________________\n");
        printf("1-->PUSH\n");
        printf("2-->POP\n");
        printf("3-->DISPLAY\n");
        printf("4-->EXIT\n");
        printf("____________________________________\n");
        printf("Enter your choice");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:push();
                   break;
            case 2:pop();
                   break;
            case 3:display();
                   break;
            case 4:return;
        }
    printf("Do you want to continue(type 0 or 1)?\n");
    scanf("%d",&option);
    }
}

编译器说预期的标识符或'(''''''''之前的标记。这是什么意思? 告诉我可能的解决方案。

3 个答案:

答案 0 :(得分:2)

您应该将堆栈声明为

struct stack <--- missed it
{
    int stk[MAXSIZE];
     int top;
};

答案 1 :(得分:1)

您在代码中错过了struct数据类型和结构名称

{
    int stk[MAXSIZE];
    int top;
};

应该

struct stack
{
    int stk[MAXSIZE];
    int top;
};

您也可以将其定义为typedef struct并删除行typedef struct stack STACK;

typedef struct
{
    int stk[MAXSIZE];
    int top;
}STACK;

STACK s;

答案 2 :(得分:0)

你应该像这样编写你的结构

typedef struct stack
{
    int stk[MAXSIZE];
    int top;
}STACK;
STACK s;