C语句'return'没有值,函数返回非void

amb*_*ika 3 c warnings

我有这个警告.

警告:'return'没有值,函数返回非void.

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正式禁止它,但编译器继续接受它是出于向后兼容的原因.

  • 我感谢您解释为什么这仅被视为警告。 (2认同)