冲突类型和C中先前的隐式声明

时间:2016-06-08 11:36:16

标签: c

The error message

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();

1 个答案:

答案 0 :(得分:1)

您需要使用您愿意传递的参数正确声明函数。

让我们举例说verifyWord返回void并接受char pointer作为参数。

适当的声明是:

void verifyWord (char *nextWord);

你将使用它:

char* nextWord = NULL;

verifyWord(nextword);

您的问题是您没有告诉编译器如何处理该功能。你需要有明确的声明,就像我上面提到的那样,放在你调用它的行之前的某个地方,它必须在同一个范围内。