编译错误?missing ']' before ';'...

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:12:59
一个顺序栈的程序
#include<iostream.h>
#define n0 100;
typedef int datatype;
struct stack
{
datatype data[n0+1];
int t;
};
void pop(stack s)
{
if(s.t>0)s.t--;
}
void push(stack s,datatype x)
{
if(s.t<=n0)
{
s.data=x;
s.t++;
}
}
main()
{
stack s;
push(s,3);
push(s,6);
pop(s);
}
但是编译老是出现如下错误
E:\c++Prog\顺序栈.cpp(6) : error C2143: syntax error : missing ']' before ';'
E:\c++Prog\顺序栈.cpp(6) : error C2059: syntax error : '+'
E:\c++Prog\顺序栈.cpp(6) : error C2238: unexpected token(s) preceding ';'
E:\c++Prog\顺序栈.cpp(15) : error C2143: syntax error : missing ')' before ';'
E:\c++Prog\顺序栈.cpp(15) : error C2059: syntax error : ')'
E:\c++Prog\顺序栈.cpp(16) : warning C4390: ';' : empty controlled statement fo

#define n0 100;
是不需要分号的。

#define n0 100;
看见这一句了没?
把分号去掉就好了

一样
#define n0 100;
有错,把它后面的分号去掉.因为系统对define做的是纯替换操作.
eg. datatype data[n0+1]; ---> datatype data[100;+1];