Jon*_*ler 15
你有类似的东西:
int function(void)
{
return;
}
Run Code Online (Sandbox Code Playgroud)
添加返回值,或将返回类型更改为void.
错误信息非常清楚:
警告:'return'没有值,函数返回非void.
没有价值的回报与我所展示的类似.该消息还告诉您,如果函数返回'void',它将不会发出警告.但是因为函数应该返回一个值,但你的'return'语句没有,你就有问题了.
这通常表示古代代码.在C89标准之前的几天,编译器不一定支持'void'.接受的风格是:
function_not_returning_an_explicit_value(i)
char *i;
{
...
if (...something...)
return;
}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,该函数返回一个int,但没有预期值.这种代码风格引发了你的警告 - 而且C99正式禁止它,但编译器继续接受它是出于向后兼容的原因.