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 交给函数末尾的调用者。
在下面的程序中,为什么编译器没有给出任何错误或警告?
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 交给函数末尾的调用者。