2
//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;
    }
} 

我正在尝试删除列表“auqHdr”中的元素“旧”。

我得到的错误是“声明与以前的“removeAUfromNodeAUQ”不兼容”有人可以指出我在这里做错了什么吗?

谢谢

4

2 回答 2

2

好吧,如果您的代码与您发布的完全一样,那么:

removeAUfromNodeAUQ(&old, &auqHdr); 

不是函数调用,是函数声明。然后定义它,但使用不同的签名。在这种情况下,您正在向前声明一个函数。C 为您假定返回类型为 int。

于 2012-04-10T00:04:24.017 回答
2

如果您在声明函数之前调用该函数,则 C 表示返回类型为int,而不是void

您应该在文件头或文件顶部添加此声明以解决问题:

static void removeAUfromNodeAUQ(gblAuqEntry *old, auQ *auqH);
于 2012-04-10T00:06:06.840 回答