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);
} 展开
....
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);
} 展开
1个回答
展开全部
你的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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询