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

标签 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函数

当我尝试在 main 之上声明时,请为我指明正确的方向:

  • 验证Word();
  • char verifyWord(void);
  • char verifyWord();

最佳答案

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

例如,verifyWord 返回 void 并接受 char 指针 作为参数。

正确的声明是:

void verifyWord (char *nextWord);

你将像这样使用它:

char* nextWord = NULL;

verifyWord(nextword);

您的问题是您没有告诉编译器如何处理该函数。您需要有显式声明,就像我上面提到的那样,放置在调用它的行之前的某个位置,并且它必须在同一范围内。

关于C 中的冲突类型和先前的隐式声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701411/

相关文章:

arrays - 使用指针扩展 C 中的数组

c - 如何将输入限制在需要的范围内? (例如: no numbers where letters are supposed to be inputted )

ios - 是否可以获得PID的启动时间?

c - 如何将变量设置为指针数组中的值

c - 在 2 个线程之间交替

c - xv6操作系统的cat.c文件中的stat.h有什么用?

c - 数组的动态结构、段错误

c - Hook - 热修补

c - 有什么方法可以在 C 中使用具有常量索引的常量数组作为 switch case 标签?

c - 为什么这个普通的 C 程序被检测为病毒?