函数期望以C语言返回值
我是C的新手,我正在编写其他人的代码,我正在尝试摆脱类似这样的警告:函数期望以C语言返回值,c,function,void,C,Function,Void,我是C的新手,我正在编写其他人的代码,我正在尝试摆脱类似这样的警告: warning: function expects to return value: myfunc myfunc是这样声明的(我相信它默认为int) 所以我试着把void放在myfunc后面,使它看起来像这样 void myfunc(int num, int age) { 我得到一个错误: 重新声明的标识符:myfunc current : function() returning void previo
warning: function expects to return value: myfunc
myfunc是这样声明的(我相信它默认为int)
所以我试着把void放在myfunc后面,使它看起来像这样
void myfunc(int num, int age) {
我得到一个错误:
重新声明的标识符:myfunc
current : function() returning void
previous: function() returning int : "students.c", line 233
但是当我转到students.c的233行时,这只是我实际调用函数的第一个地方。为什么会这样
我知道我可以将return
更改为return0
然后将myfunc定义为int。但是当调用此函数时,它并没有分配给任何对象,它只是像myfunc(当前_id,age)一样执行代码>(例如,不是inti=myfunc(…
)
在这种情况下,最好不要使用void?在void
函数中使用return;
可以吗
谢谢!函数myfunc()
声明时没有返回类型(在某处):
或者根本没有声明,因此它默认为int
返回类型。在定义中指定void
时:
void myfunc(int id, int age)
{
}
它与声明不匹配。更改或添加声明:
void myfunc(int id, int age);
您不需要在返回类型为void
的函数中显式地编写return;
,但是如果您愿意,可以这样做。您做了正确的事情,将void
添加到myfunc
的实现中。然而,看起来原始程序员很马虎,没有为声明函数原型>myfunc
在students.c
中使用它之前。在第233行之前的某个地方添加该原型,您应该准备好了!您是否在某个地方声明了原型?您应该在学生的第233行周围显示几行。c,如果它认为这是一个声明,那么这个调用听起来可能有问题。@JoachimIsaksson,C89在没有原型的情况下调用函数-编译器只会假设函数返回int
。在定义该函数之前,您有一个函数原型。这也需要更改。它很可能位于名为students.h
的头文件中。这是我的问题,我没有声明原型啊谢谢!我错过了一个原型,这消除了警告,谢谢,那里的声明消除了警告,我想编译器一定认为我第一次调用这个函数实际上是一个声明,这就是为什么它在抱怨它已经被定义为int时引用了233行
void myfunc(int id, int age)
{
}
void myfunc(int id, int age);