你好,我在执行时遇到以下程序错误。 根据我这个程序是完全正确的,但在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);
}
}
编译器说预期的标识符或'(''''''''之前的标记。这是什么意思? 告诉我可能的解决方案。
答案 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;