Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数期望以C语言返回值_C_Function_Void - Fatal编程技术网

函数期望以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

我是C的新手,我正在编写其他人的代码,我正在尝试摆脱类似这样的警告:

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);