C语言中void函数中的return语句

时间:2017-06-30 10:29:14

标签: c function return void

在以下程序中,为什么编译器不会出现任何错误或警告?

cc -Wall -pedantic my_program.c

代码:

#include <stdio.h>

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

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

我已经在 Linux 平台上的 GCC 编译器中编译了该程序。

2 个答案:

答案 0 :(得分:7)

当然,您可以在return;函数中使用void。你怎么能早点从这样的功能回来?

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

(请注意,必须 return显式来自非void函数,但main()除外,编译器必须生成return 0;如果失踪了。

答案 1 :(得分:1)

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

如果没有return语句,控件将在函数结束时返回调用者。