//old and auqHdr are data structures of type gblAuqEntry and auQ respectively
//I traverse through the list 'auqHdr' and when I match the element 'old', I need to remove it
removeAUfromNodeAUQ(&old, &auqHdr);
//Function implementation
static void removeAUfromNodeAUQ(gblAuqEntry *old, auQ *auqH)
{
auQ *auqPtr, *prev;
int found =0;
for (auqPtr = auqH; auqPtr; auqPtr = auqPtr->nxt)
{
if (something)
prev = auqPtr;
else
{
prev->nxt = old->nxt;
found = 1;
break;
}
}
我正在尝试删除元素' old'在列表' auqHdr'。
我得到的错误是"声明与之前的" removeAUfromNodeAUQ""不相容 有人可以指出我在这里做错了吗?
由于
答案 0 :(得分:2)
好吧,如果您的代码与您发布的完全一致,那么:
removeAUfromNodeAUQ(&old, &auqHdr);
不是函数调用,它是函数声明。然后,您可以定义它,但使用不同的签名。在这种情况下,您正在声明一个函数。 C为您假定返回类型为int。
答案 1 :(得分:2)
如果在声明之前调用该函数,则C表示返回类型为int
,而不是void
。
您应该在文件的标题或顶部添加此声明以解决问题:
static void removeAUfromNodeAUQ(gblAuqEntry *old, auQ *auqH);