C 错误消息:预期标识符或‘;(’;在‘;之前&&&&’;标记,而整个程序是否正确编写?
您好,我在执行程序时遇到一个错误。 根据我的说法,这个程序完全正确,但在gcc编译器上运行时,显示了一条错误消息。 请看一下代码C 错误消息:预期标识符或‘;(’;在‘;之前&&&&’;标记,而整个程序是否正确编写?,c,stack,token,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() {
#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);
}
}
#包括
#定义最大尺寸5
{
int stk[MAXSIZE];
int top;
};
typedef结构堆栈;
堆栈s;
无效推送(void);
int pop(无效);
作废显示(作废);
void main()
{
智力选择;
int选项=1;
s、 top=-1;
while(选项)
{
printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”);
printf(“1-->推送\n”);
printf(“2-->弹出\n”);
printf(“3-->显示\n”);
printf(“4-->退出\n”);
printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”);
printf(“输入您的选择”);
scanf(“%d”,选择(&C);
开关(选择)
{
案例1:推送();
打破
案例2:pop();
打破
案例3:显示();
打破
案例4:返回;
}
printf(“是否要继续(键入0或1)?\n”);
scanf(“%d”,选项(&O);
}
}
编译器在“{”标记之前显示预期的标识符或“(”。这是什么意思?
告诉我可能的解决方案。您应该将堆栈声明为
struct stack <--- missed it
{
int stk[MAXSIZE];
int top;
};
struct stack您应该这样编写您的结构
typedef struct stack
{
int stk[MAXSIZE];
int top;
}STACK;
STACK s;
代码中缺少struct
数据类型和结构名称
{
int stk[MAXSIZE];
int top;
};
它应该
struct stack
{
int stk[MAXSIZE];
int top;
};
还可以将其定义为typedef struct
并删除行typedef struct stack;
像
您似乎“意外”删除了一行:struct stack
紧接着#define MAXSIZE 5
一句忠告:如果编译后的报告代码中有语法错误,不要告诉所有人您的代码“完全正确”.Compiler很少出错。此外,错误发生在编译时,而不是在执行过程中。执行时,我在下面的程序中遇到错误。No。您在编译时遇到错误。main()
必须返回int
而不是void
。
typedef struct
{
int stk[MAXSIZE];
int top;
}STACK;
STACK s;