我们为什么要使用收益;虚函数中的声明?

时间:2019-06-14 17:54:51

标签: c

return;函数中的

void。它实际上是做什么的?

void function() {
    if(x==NULL) {
        return;
    }
    else{
        /////
    }
}

6 个答案:

答案 0 :(得分:7)

在您显示的示例中,return不执行任何操作。但是,请考虑以下示例:

void do_the_thing()
{
    if(it's already done)
        return;

    do the thing;
}

如果做某件事很昂贵,或者如果已经做过而导致问题,则需要这样的逻辑。而且,除了“费用”外,在任何给定调用期间,函数可能会选择执行比其全部动作要少的原因。

换句话说,从void函数返回,尽管它不会返回值,但至少将阻止该函数执行其以后的任何工作。

(现在,话虽如此,在函数中间使用return并不是实现此功能的唯一方法。代替if语句使函数提前返回,您可以使用if语句或else子句使该函数仅在需要时执行操作。回到我的示例,您还可以编写

void do_the_thing()
{
    if( ! already done) {
       do the thing;
    }
}

这引发了一场永恒的风格争论,即在一个函数中散布多个return语句是好是坏,或者最后总是总是一个。)< / p>

答案 1 :(得分:2)

遇到return语句会使函数立即返回,而不是继续运行其后的任何代码。

如果函数返回一个值,则return语句必须指定一个要返回的值。对于具有void返回类型的函数,不需要任何值。

答案 2 :(得分:2)

通常,这样做是为了缩短执行时间,这意味着将不执行该函数中的其余代码(将不评估else语句或该函数中的其他任何内容。

这从性能方面有帮助,但从防御性编程的角度来看也有帮助,因为您可以精确地设置执行返回的位置,而不是假定即使不需要,执行也可以正确到达函数的结尾(代码可以被意外添加或更改并影响预期的行为)

答案 3 :(得分:1)

这将导致该函数(而不是该程序,只是该函数)终止而无须做任何进一步的事情。

答案 4 :(得分:1)

您使用return来停止功能而不运行所有代码。

使用您的示例:

void function(){
  if(x==NULL){
     return;
  }
  else{
       /////
  }
  ... some other code here ...
}

如果xNULL,则该函数正在停止且未运行... some other code here ...

如果xnot NULL,则程序将执行else语句以及... some other code here ...上的内容

答案 5 :(得分:1)

在用C ++编程的过程中,我了解到' void函数'没有返回类型 return-type 用于声明函数,例如int main(),其中类型int是返回类型,该函数必须返回一个整数值以表示成功终止。但是,当我们使用void函数时,情况会发生变化。 返回类型void;顾名思义,这意味着它不会返回值,因为它是空的,所以不会返回任何东西。因此,如果尝试从声明为void的方法( function )返回值,则会出现编译器错误。

但是如果您建议的话:

void function() {    
if(x==NULL) {
    return;
}
else{
    /////
}

}

上面的代码还将再次出现错误,因为void方法不是为返回值而构建的。如果该函数仅是返回类型int,则此retrun命令将起作用,但是return语句不能在void函数中使用,因为它会产生错误。

希望对您有所帮助!

要进一步阅读,您可以访问: http://www.cs.fsu.edu/~cop3014p/lectures/ch7/index.html

Return statement in void method

https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html