奇怪的编译错误

zhuoyuesky 2010-07-05 06:00:12
我在fc4下编程,有一个函数已经做好了。编译都通过了,后来要改第一个参数的类型和参数名,其他参数不动。
再重新编译提示我。
my_fi.c:45: error: conflicting types for 'fi_cfg'
my_fi.h:33: error: previous declaration of 'fi_cfg' was here

我查了代码没有重复定义函数名,将my_fi.h中的fi_cfg函数注掉,就可以编译过了。
打开就是不过,提示上面的信息。请大家帮助,这是什么问题?
...全文
72 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
linkejin 2010-07-08
  • 打赏
  • 举报
回复
是啊是啊
leo_dengzx 2010-07-06
  • 打赏
  • 举报
回复
意思是说,你的函数声明与定义不一致,显然是因为参数类型变化了,而你的头文件中没有做对应调整导致的。
woso 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 brookmill 的回复:]

从现象来看,应该是c文件的定义和头文件的声明不一致。
楼主改参数的时候,把c文件和头文件都改了吗?
编译器认为 my_fi.c的45行 和 my_fi.h的33行 有冲突,楼主再把这两行仔细检查一下?
[/Quote]
很可能是这个原因
louyong0571 2010-07-06
  • 打赏
  • 举报
回复
有可能重复包含头文件了吧
nossiac 2010-07-06
  • 打赏
  • 举报
回复
你改函数参数类型,却没有更新头文件里的原型,编译器会认成两个不同的函数。
include进来后,名字一样,当然要报错,重复。
谱靠一哥 2010-07-06
  • 打赏
  • 举报
回复
难道某些头文件升级了,加上了一些以前不存在的声明?
linkejin 2010-07-06
  • 打赏
  • 举报
回复
我也觉得是头文件声明和定义的地方弄混了
ma100 2010-07-05
  • 打赏
  • 举报
回复
将my_fi.h中的fi_cfg函数注掉,就可以编译过了
说明你肯定有别的地方定义
brookmill 2010-07-05
  • 打赏
  • 举报
回复
从现象来看,应该是c文件的定义和头文件的声明不一致。
楼主改参数的时候,把c文件和头文件都改了吗?
编译器认为 my_fi.c的45行 和 my_fi.h的33行 有冲突,楼主再把这两行仔细检查一下?
cceczjxy 2010-07-05
  • 打赏
  • 举报
回复
是不是等于和声明搞混了?

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧