2012-04-10 15 views
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'の要素 'old'を削除しようとしています。関数へのポインタの受け渡し

エラーは「宣言は以前の「removeAUfromNodeAUQ」と互換性がありません」 ここで間違っていることを指摘できますか?

おかげ

+0

これは参考になります。 'auqHdr'がリストであれば、ここではそのコードが何をしているのかを理解しやすいように 'myList'と呼ぶだけです。しかし、あなたの変数名を一般的に説明的で読みやすいものにするのは良い考えです。 –

答えて

2

の前に関数を呼び出した場合、Cはvoidではなく、intの戻り値の型を意味します。

あなたは問題を解決するために、ヘッダーまたはファイルの先頭にこの宣言を追加する必要があります:あなたのコードが漠然と読めるた変数を使用した場合

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

ありがとうdasblinkenlight!これはそれだった。私はそれを使う前にそれを宣言するのを忘れていました。 – mane

2

さて、あなたのコードは、あなたがこのその後、投稿として正確である場合:

removeAUfromNodeAUQ(&old, &auqHdr); 

が、それは関数宣言で、関数呼び出しではありません。次にそれを定義しますが、異なる署名で定義します。この文脈では、関数を前方宣言しています。 Cはintの戻り値の型を仮定しています。

+0

ありがとうエドSとdasblinkenlight。 – mane

関連する問題