簡體   English   中英

類型沖突和C中的先前隱式聲明

[英]conflicting types AND previous implicit declaration in 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是一個playgame函數和一個verifyWord函數

當我嘗試在主要內容上方進行聲明時,請向我指出正確的方向:

  • verifyWord();
  • char verifyWord(void);
  • char verifyWord();

您需要使用願意傳遞的參數正確聲明函數。

例如, verifyWord返回void並接受char pointer作為參數。

正確的聲明是:

void verifyWord (char *nextWord);

您將像這樣使用它:

char* nextWord = NULL;

verifyWord(nextword);

您的問題是您沒有告訴編譯器如何處理該函數。 您需要有一個明確的聲明,如我上面提到的那樣,放置在調用它的行之前的某處,並且必須在同一范圍內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM