c - 原型与函数定义不匹配,但确实如此
问题描述
我有一个具有 2 个函数的程序,其中一个计算文件中的单词数,并且运行良好,另一个计算特定单词出现在文件中的 tymes 数。这个 las 函数确实工作得很好(我已经将它与 main 隔离了),但是当我用 functions.h 文件在 main 中订购所有东西时,我得到了这个。
有问题的函数是word_cnt(FILE*, char*)
当我编译时,我得到了这个:
word.c:3:5: error: conflicting types for ‘word_cnt’
int word_cnt(FILE* fp, char* argv[2])
In file included from word.c:1:
functions.h:7:5: note: previous declaration of ‘word_cnt’ was here
int word_cnt(FILE*, char*);
在 word.c 文件中,(包含有问题的 word_cnt 函数的文件)函数定义如下
int word_cnt(FILE* fp, char* argv[2])
在头文件中,原型是这样的:
int word_cnt(FILE*, char*);
我不明白....定义是正确的,为什么编译器认为我在重新定义它?
图片在这里 https://drive.google.com/open?id=1zhS3iaFURJ0HyRgcy733NsT4trfzFDve
解决方案
在源文件中,第二个参数的类型为“array 2 of pointer to char”。
在标头中,第二个参数的类型为“指向字符的指针”。
这些不是同一类型,也不兼容。前者实际上是 a char **
,而后者是 a char *
。
推荐阅读
- linux - 文件和内存。它们是如何映射的...调试、文件系统“ls -a”文件和正在运行的程序的地址空间
- wordpress - 如何在 wordpress/elementor 页面上创建交互式地图
- python - Python 找不到 Wolframalpha 模块
- android - 如何让图标始终出现在 ActionBar 的右侧?
- python - 如果存在于另一个元组中,如何从元组列表中删除元组
- dart - 不确定如何在操作员之前解决 null 感知
- python - pandas groupby 将列更改为系列
- python - 使用数据库使用python登录
- python - 数据显示不正确
- python - 在模式前用破折号重命名文件夹中的顺序文件(复制)?[Python]