当前位置: 代码迷 >> C语言 >> 队列定义的语法问题
  详细解决方案

队列定义的语法问题

热度:401   发布时间:2008-04-23 22:37:43.0
队列定义的语法问题
#include <stdio.h>
#include <malloc.h>
#define        MAXQSIZE        100;
#define        OK        1;
#define        ERROR        0;
typedef        int        QElemType;        
typedef        int        Status;
typedef struct{
    QElemType    *base;
    int front;
    int rear;
}SqQueue;//队列的定义
Status InitQueue(SqQueue &Q);//构造一个空队列
Status QueueLength(SqQueue Q);//计算队列的长度
Status EnQueue(SqQueue &Q,QElemType e);//插入一个元素
Status DeQueue(SqQueue &Q,QElemType &e);//删除一个元素
#include "queue.h"
Status InitQueue(SqQueue &Q)//构造一个空队列
{
    Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));
    if(!Q.base)return ERROR;
    Q.front=Q.rear=0;
    return OK;
};
Status QueueLenth(SqQueue Q)//计算队列的长度
{    int i;
    i=(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;
    return i;
};
Status EnQueue(SqQueue &Q,QElemType e)//插入一个元素
{    int i;
    i=(Q.rear+1)%MAXQSIZE;
    if(i==Q.front) return ERROR;
    Q.base[Q.rear]=e;
    Q.rear=(Q.rear+1)%MAXQSIZE;
    return OK;
};
Status DeQueue(SqQueue &Q,QElemType &e)//删除一个元素
{
    if(Q.front==Q.rear) return ERROR;
    e=Q.base[Q.front];
    Q.front=(Q.front+1)%MAXQSIZE;
    return OK;
};

编译之后出现错误: <1>C:\Program Files\Microsoft Visual Studio\MyProjects\队列的定义\SqQueue.cpp(4) : error C2143: syntax error : missing ')' before ';'
                   <2>C:\Program Files\Microsoft Visual Studio\MyProjects\队列的定义\SqQueue.cpp(4) : error C2059: syntax error : ')'

不明白为什么会这样,我把宏定义删了后,在每个函数里定义int MAXQSIZE=100后,又没有语法错误了?这是为什么?是宏定义没有成功?
那位高手能告诉我,先谢谢了。。
搜索更多相关的解决方案: 队列  语法  定义  

----------------解决方案--------------------------------------------------------
宏定义不用分号
----------------解决方案--------------------------------------------------------
问题解决了,谢谢,不过为什么加了“;”后会这样呢?是系统把“MAXQSIZE;”作为标示符吗?
----------------解决方案--------------------------------------------------------
对C++不了解
在C语言里,按说宏定义是不会报错的
预编译器只是用"100;"来替换MAXQSIZE
所以只是在引用的时候会报错,因为用加了分号的去做替换
语法会出问题
----------------解决方案--------------------------------------------------------
  相关解决方案