将指针传递给函数

时间:2012-04-10 00:02:14

标签: c pointers data-structures

//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""不相容 有人可以指出我在这里做错了吗?

由于

2 个答案:

答案 0 :(得分:2)

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

removeAUfromNodeAUQ(&old, &auqHdr); 

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

答案 1 :(得分:2)

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

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

static void removeAUfromNodeAUQ(gblAuqEntry *old, auQ *auqH);