C 警告 'return' 没有值,函数返回非空

标签 c warnings

我有这个警告。

warning : 'return' with no value, in function returning non-void.

最佳答案

你有这样的东西:

int function(void)
{
    return;
}

添加返回值,或将返回类型更改为void。

错误信息很清楚:

warning : 'return' with no value, in function returning non-void.

没有值(value)的返回与我展示的相似。该消息还告诉您,如果该函数返回“void”,则不会发出警告。但是因为该函数应该返回一个值但您的“return”语句没有,所以您遇到了问题。

这通常表示古老的代码。在 C89 标准之前的日子里,编译器不一定支持“void”。当时接受的风格是:

function_not_returning_an_explicit_value(i)
char *i;
{
    ...
    if (...something...)
        return;
}

从技术上讲,该函数返回一个 int,但没有预期值。这种代码风格会引发您收到的警告 - C99 正式禁止它,但出于向后兼容性的原因,编译器继续接受它。

关于C 警告 'return' 没有值,函数返回非空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422636/

相关文章:

C 不读取整个 BMP 文件 - fopen

c - 关于获取以毫秒为单位的时间

git - 执行 git push 时出现 "diff.renamelimit variable"警告

ruby-on-rails - Ruby Object#id 警告和 Active Record

c - 如何设置我的代码/VS10 以识别 .c 文件中的 CUDA 函数调用?

objective-c - 在 C 和 Objective-C 中,我们应该使用 0.5f 还是 0.5?

c - 分配和释放二维数组

linux - 当命令失败并出现错误时,获取fabric.local或run或sudo的输出

ios - Facebook iOS SDK FRAMEWORK_SEARCH_PATH

c++ - 为什么 Visual Studio 不在 self 赋值时发出警告 (int foo = foo;)