2 emmadiana EmmaDiana 于 2016.04.13 11:10 提问

c语言程序编译出错error: syntax error before "typedef"

设计的一个顺序循环队列和测试函数,结果编译的时候就有好多error: syntax error before ""不知道要怎么改,求帮助~
这是我的代码:
头文件:
#include
typedef struct SeqCQueue
{
DataType queue[MaxQueueSize];
int MaxQueueSize;
int rear;
int front;
}struct SeqCQueue;
void QueueInitiate(SeqCQueue *Q)
{
Q->rear=0;
Q->front=0;
}
int QueueNotEmpty(SeqCQueueQ)
{
if(rear==front)
return 1;
else
return 0;
}
int QueueAppend(SeqCQueue*Q,DataType x)
{
if((rear+1)%MaxQueueSize==front)
{
printf("队列已满无法插入!\n");
return 0;
}
else
{
Q->queue[Q->rear]=x;
Q->rear=(Q->rear+1)%MaxQueueSize;
return 1;
}
}
int QueueDele(SeqCQueue*Q,DataType*d)
{
if(rear==front)
{
printf("队列已空,无数据元素出队列!\n");
return 0;
}
else
{
*d=Q->queue[Q->front];
Q->front=(Q->front+1)%MaxQueueSize;
return 1;
}
}
int QueueGet(SeqCQueue Q,DataType*d)
{
if(rear==front)
{
printf("队列已空,无数据元素可取!\n");
return 0;
}
else
{
*d=Q.queue[Q.front];
return 1;
}
}
测试函数:
#include
#include
typedef struct
#include"2.h"
int main(void)
{
typedef struct
{

int queue[MaxQueueSize];
int rear;
int front;

}SeqCQueue;
void QueueInitiate(SeqCQueue*Q)
int QueueNotEmpty(SeqCQueue*Q)
int i,x=1;
for(i=0;i<10;i++)
{
QueueAppend(SeqCQueue*Q,DataType x)
x++;
}
QueueGet(SeqCQueue Q,DataType*d)
printf("此队列队头元素为%d",*d);
for(i=0;i<10;i++)
{
QueueDele(SeqCQueue*Q,DataType*d)
printf("%d",*d);
free(d)
}
}

4个回答

CSDNXIAON
CSDNXIAON   2016.04.13 11:23

syntax error : missing ';' before '*
error C2143: syntax error : missing ';' before 'tag::id' 'BOOL' : redefinition; typedef cannot be ov
phpmyadmin建表出错 #1064 - You have an error in your SQL syntax;
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

EmmaDiana
EmmaDiana 我用的是C-free,编译结果一直都是什么之前有语法错误,一直找不出来。。。
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.13 12:08

楼主重新发一下代码吧,把代码放在代码框里面发
typedef struct SeqCQueue
{
DataType queue[MaxQueueSize];
int MaxQueueSize;
int rear;
int front;
}struct SeqCQueue;
最好改成
typedef struct SeqCQueue
{
DataType queue[MaxQueueSize];
int MaxQueueSize;
int rear;
int front;
}SeqCQueue;

DataType又是啥?MaxQueueSize也看不到?

abcd_123457
abcd_123457   2016.04.13 15:06

多了一个语句#include,这句话后面没有包含头文件,所以报错了。

EmmaDiana
EmmaDiana   2016.04.13 15:52

头文件:
#include
typedef struct SeqCQueue
{
DataType queue[MaxQueueSize];
int MaxQueueSize;
int rear;
int front;
}struct SeqCQueue;
void QueueInitiate(SeqCQueue *Q)
{
Q->rear=0;
Q->front=0;
}
int QueueNotEmpty(SeqCQueueQ)
{
if(rear==front)
return 1;
else
return 0;
}
int QueueAppend(SeqCQueue*Q,DataType x)
{
if((rear+1)%MaxQueueSize==front)
{
printf("队列已满无法插入!\n");
return 0;
}
else
{
Q->queue[Q->rear]=x;
Q->rear=(Q->rear+1)%MaxQueueSize;
return 1;
}
}
int QueueDele(SeqCQueue*Q,DataType*d)
{
if(rear==front)
{
printf("队列已空,无数据元素出队列!\n");
return 0;
}
else
{
*d=Q->queue[Q->front];
Q->front=(Q->front+1)%MaxQueueSize;
return 1;
}
}
int QueueGet(SeqCQueue Q,DataType*d)
{
if(rear==front)
{
printf("队列已空,无数据元素可取!\n");
return 0;
}
else
{
*d=Q.queue[Q.front];
return 1;
}
}
测试函数:
#include
#include
typedef struct
#include"2.h"
int main(void)
{
typedef struct
{

int queue[MaxQueueSize];
int rear;
int front;

}SeqCQueue;
void QueueInitiate(SeqCQueue*Q)
int QueueNotEmpty(SeqCQueue*Q)
int i,x=1;
for(i=0;i<10;i++)
{
QueueAppend(SeqCQueue*Q,DataType x)
x++;
}
QueueGet(SeqCQueue Q,DataType*d)
printf("此队列队头元素为%d",*d);
for(i=0;i<10;i++)
{
QueueDele(SeqCQueue*Q,DataType*d)
printf("%d",*d);
free(d)
}
return 0;
}

@

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!