我是C的新手,我正在研究其他人的代码,我正试图摆脱一个看起来像这样的警告:
warning: function expects to return value: myfunc
Run Code Online (Sandbox Code Playgroud)
myfunc是这样声明的,(我相信它默认为int)
myfunc(int id, int age) {
...
return;
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试在myfunc后面放置void,使它看起来像这样
void myfunc(int num, int age) {
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
标识符已重新声明:myfunc
Run Code Online (Sandbox Code Playgroud)current : function() returning void previous: function() returning int : "students.c", line 233
但是当我去student.c的第233行时,这只是我实际上称之为函数的第一个地方.为什么会这样?
我知道我可以更改return为return 0;然后将myfunc定义为int.但是当调用这个函数时,它没有分配给任何东西,它只是执行myfunc(current_id, age);(int i = myfunc(...例如).
在这种情况下,最好不要使用void吗?可以return;在void函数中使用吗?
谢谢!
myfunc()声明该函数没有返回类型(某处):
myfunc(int id, int age);
Run Code Online (Sandbox Code Playgroud)
或根本没有声明,因此它默认为int返回类型.void在定义时指定:
void myfunc(int id, int age)
{
}
Run Code Online (Sandbox Code Playgroud)
它与声明不符.更改或添加声明:
void myfunc(int id, int age);
Run Code Online (Sandbox Code Playgroud)
您不需要显式写入return;具有void返回类型的函数,但如果您愿意,也可以.
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |