2016-06-08 62 views
0

The error message衝突的類型和使用C先前的隱式聲明

skeleton.c:86:6: warning: conflicting types for ‘verifyWord’ [enabled by default] 
void verifyWord(char nword) { 
    ^
skeleton.c:79:3: note: previous implicit declaration of ‘verifyWord’ was here 
    verifyWord(nextword); 
^

void playgame() { 
    . 
    . 
    . 
    strcpy(curword, get_random_word(dictptr)); 

    for(;;) { 
     . 
     . 
     . 
     /*function for nextword if correct*/ 
     verifyWord(nextword); 
     /*           */ 
    } /* end for loop */ 
    . 
    . 
    . 
} 

void verifyWord(char nword) { 
FILE * fp; 

fp = fopen ("usedWords.txt", "a+"); 
fprintf(fp, "%d ", nword); 

fclose(fp); 
} 

嗨,這個程序應該是一個小型的文字遊戲,我是新來的C. 需要一些幫助來弄清楚如何避免imgur圖像中顯示的錯誤。

上述2是瑣事功能和verifyWord功能

請點我在正確的方向作爲我試圖宣佈上方的主:

  • verifyWord();
  • char verifyWord(void);
  • char verifyWord();
+0

確保'verifyWord()'的原型對函數的每個調用者都可見。 – EOF

回答

1

你需要用你願意傳入的參數正確地聲明函數。

比方說,例如verifyWord返回void並接受char pointer作爲參數。

正確的聲明將是:

void verifyWord (char *nextWord); 

你會使用它像:

char* nextWord = NULL; 

verifyWord(nextword); 

你的問題是,你沒有告訴你的編譯器如何處理的功能。你需要有一個明確的聲明,就像我上面提到的那樣,放在你調用它的那一行之前的某個地方,它必須在相同的範圍內。

+1

如果你讀過OP的帖子,你會發現其中一個聲明是* implicit *。 – EOF

+1

哦,我的壞。儘管如此,這解決了這個問題,因爲問題是:「當我試圖在主體上方宣佈時,請指出正確的方向:」 – Mirakurun

相關問題