error: conflicting types for 错误原因及解决办法

发布时间:2020-07-13 01:32:36 作者:韩A
来源:网络 阅读:44806

error: conflicting types for '***'

 error: previous implicit declaration of '***' was here

 

       原因一:

      没有函数声明,且函数定义在主函数之后;

 

      原因二:

      头文件的被循环引用,在引用时考虑清楚包含顺序

 

      原因三:

      头文件函数声明和函数定义参数不同

  

      头文件中声明 void test(const char * buf);

      在定义时写作 void test(char * buf);

      

      原因四:

      函数使用的参数类型是自定义类型(如结构体),而自定义类型的定义在函数的声明和函数定义之间,由于在函数声明时,结构体并 


     没有被定义,不被系统识别为结构体,而后面定义函数时,结构体已经定义,系统将其识别为结构体,导致系统认为声明和定义使用  


    的是不同的参数类型;所以才会出现上述问题;

      

      原因五:

      在linux中,编译头文件,会出现一个中间的预编译文件(.h.gch),当再次编译整个文件时,如果该文件(.h.gch)存在,则会直接使用该文件(.h.gch),而不会再编译.h文件,此时,如果你改动了.h文件,而继续编译,则会造成声明和定义不一致的现象,虽然在文件里显示声明和定义是一致的,但是实际上系统编译时并不会使用你改动后的文件(.h),而是直接使用你修改前编译生成的.h.gch文件;(这个

错误一般很难发现,如果发现自己目录下有.h.gch文件,则一定要及时更新;)


推荐阅读:
  1. shell脚本--------for循环
  2. Oracle 11g 预估索引大小

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

for types conflicting

上一篇:linux常用的网络管理命令

下一篇:ASP.Net MVC3安全升级导致程序集从3.0.0.0变为3.0.0.1

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》