c/c++语言开发共享C警告冲突类型

我的代码是

void doc(){ //mycode return; } 

我的警告是

 conflicting types for 'doc' 

任何人都可以解决它。

    C中,如果在调用函数时没有函数原型,则假定它返回一个int并获取一个未指定数量的参数。 然后,当您稍后将函数定义为返回void并且不带参数时,编译器将此视为冲突。

    根据代码的复杂程度,您可以执行一些简单的操作,如在使用函数之前移动函数的定义,或者在头文件中添加函数声明并将其包含在内。

    在任何情况下,净效应应该是在使用之前使函数原型可用。

    如果你添加

     void doc(void); 

    在使用函数之前,您将在范围内看到原型,并且您的警告将消失。

    我认为这是你警告的最可能原因。 您可能在代码中有明确的不兼容的doc声明,但我们无法分辨,因为您没有发布完整的代码。

    尝试在程序文件中的main函数之前编写doc函数。

    你用其他类型/签名声明它并用其他类型/签名定义..

    喜欢

     int doc(); void doc() { } 

    会给你这个警告。

    这显然不是你完整的代码。

    但是,该错误意味着还有另一个doc声明(可能是一个全局变量?头文件中的某些内容?),它不是一个不带参数的void函数。

    “doc”可能已经用不同的类型声明了……你应该尝试找到之前的声明!

    您之前已经声明了doc ,或者调用了未声明的doc因此强制编译器从该调用推断出doc的可能参数声明。 现在,您引用的doc的定义与之前的声明(显式的或由编译器推断的)不同,后者被报告为“冲突”。

    确保你没有在你的代码中的任何地方使用过doc!我认为这只会给你带来麻烦!

    声明上面的function使用解决了它。

    例:

     void recordAudio(){ //declaration doStuff(); } void initialise(){ recordAudio(); // usage } 

    如上所示, recordAudio()的用法高于使用的位置。

      以上就是c/c++开发分享C警告冲突类型相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/518790.html

      (0)
      上一篇 2020年12月4日
      下一篇 2020年12月4日

      精彩推荐