C警告冲突类型

amb*_*ika 5 c warnings

我的代码是

void doc(){
          //mycode                
            return;
           }
Run Code Online (Sandbox Code Playgroud)

我的警告是

conflicting types for 'doc'
Run Code Online (Sandbox Code Playgroud)

任何人都可以解决它.

Alo*_*hal 27

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

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

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

如果你添加

void doc(void);
Run Code Online (Sandbox Code Playgroud)

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

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


小智 14

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


raj*_*raj 5

你已经用一些其他类型/签名声明了它,并用一些其他类型/签名定义了它。

喜欢

int doc();
void doc()
{ 
}
Run Code Online (Sandbox Code Playgroud)

会给你这个警告。


Gre*_*ill 3

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

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

  • 他也可能在定义之前使用了该函数 (4认同)