函数的返回数据类型,其原型在main()中声明,是无效的。 它结合了指令回报;如在
main()
{
void create(int *p);
*some code*
}
void create(node *list)
{
*some code*
return;
}
它将返回什么,它将返回哪里?
答案 0 :(得分:9)
它不会返回任何内容,您可能在void函数中返回语句以改变流并退出函数。即而不是:
void do_something(int i)
{
if (i > 1) {
/* do something */
}
/* otherwise do nothing */
}
你可能有:
void do_something(int i)
{
if (i <= 1)
return;
/* if haven't returned, do something */
}
答案 1 :(得分:3)
在这种情况下意义不大。
返回;表示从此函数突然退出返回void。
int a()
{
return 10;
}
void b()
{
return; // we have nothing to return, this is a void function.
}
void c()
{
// we don't need return; it is optional.
}
返回;对于void函数没有用,可以省略,是可选的。 但是有时它会很有用,例如退出循环或开关。
void xxx()
{
int i = 0;
while (1)
{
if (++i >= 100)
return; // we exit from the function when we get 100.
}
}
答案 2 :(得分:2)
return;
不会返回任何与函数void
的声明的create
返回类型匹配的内容。它将返回其出现的函数的调用者(在您的示例中未显示),就像return EXPRESSION;
一样。
在这段特殊代码中,return;
是多余的,因为它出现在create
的最后,但是当你想要提前退出某个函数时它很有用:
void print_error(char const *errmsg)
{
if (errmsg == NULL)
// nothing to print
return;
perror(errmsg);
}
答案 3 :(得分:1)
它将从执行函数返回void
返回值(这意味着没有值)。