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/