我的代码是
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