C语言编程问题 出现function does not take 1 parameters

源代码比较长,这里就给出一点....char*Tostring(int);voidPrnN();voidPrnB();voidPrnM();voidClearAll();... 源代码比较长,这里就给出一点
....
char *Tostring(int);
void PrnN();
void PrnB();
void PrnM();
void ClearAll();
void Clearp();
void Clearq();
void Clearr();
void cls();
.......
.......
switch (command1) {
case '1':
printf("\n请提供科室的相关信息,");
flag=0;
Search_room();
if (flag) continue;
if (p) {
t=0;
if (p==head) {
head=p->next;
Clearp(p);
} else {
pl->next=p->next;
Clearp(p);
}
puts("\n删除成功!");
printf("按ENTER以继续...");
gets(rest);
cls();
changed=1;
.......
上面的程序在运行时出现错误,显示
cpp1.cpp(1114) :error C2660: 'Clearp' : function does not take 1 parameters
cpp1.cpp(1117) :error C2660: 'Clearp' : function does not take 1 parameters
要怎么改才能正确?还有几个都是相同的错误的,求大神解答!!!
void Clearp(struct Troom *p)
{
struct Tpro *dq, *q;
for (q=p->sub; q; q=dq) {
dq=q->next;
Clearq(q);
}
free(p);
}
展开
 我来答
百度网友afa1129
2017-06-10 · TA获得超过235个赞
知道小有建树答主
回答量:244
采纳率:71%
帮助的人:121万
展开全部

你的Clearp申明的时候是没有形参的,可调用的时候有实参。可能这就是原因。

char *Tostring(int);
void PrnN();
void PrnB();
void PrnM();
void ClearAll();
void Clearp();
void Clearq();
void Clearr();
void cls();
/* ... */
if (p==head) {
head=p->next;
Clearp(p);
} else {
/* ... */
更多追问追答
追问
那应该怎么改?大一的作业,也不太懂
追答

在申明的时候加上行参。(在你的私有头文件,或main函数的前的

void Clearp();
改成

void Clearp(struct Troom *p);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式