return C 中 void 函数中的语句

return statement in void function in C

在下面的程序中,为什么编译器没有给出任何错误或警告?

cc -Wall -pedantic my_program.c

代码在这里:

#include <stdio.h>

void f()
{
        return; // return statement in void function
}

int main()
{
        f();
        return 0;
}

我在Linux平台上用GCC编译器编译了程序。

当然你可以在void函数中使用return;。否则你会如何 return 早点使用这样的函数?

在您的情况下,该语句是多余的,因为它在所有控制路径上都已到达,但编译器肯定不会在该实例中发出诊断。

(请注意,您 必须 return 明确地来自非 void 函数,main() 除外,其中编译器如果缺少,必须生成 return 0;

一个 void 函数将执行任务,然后控制 returns 返回给调用者,但是,它不会 return 一个值。 return 没有任何价值。

如果没有 return 语句,控制权将 return 交给函数末尾的调用者。