【问题标题】:Should I write return; in a void-returning function? [duplicate]我应该写回报吗?在返回无效的函数中? [复制]
【发布时间】:2016-02-15 15:32:30
【问题描述】:

假设我有一个返回 void 的函数,

void foo(void)
{
    // code
}

void foo(void)
{
    // code
    return;
}

我想知道哪个在实践中更好?第一个有什么潜在的问题吗?

【问题讨论】:

  • 两者都可以。最好遵循您小组的编码标准。如果您没有,请创建它们。
  • 没有必要。你提到的两个函数是等价的。

标签: c function


【解决方案1】:

两种情况完全等价。

在第二个示例中,return; 完全是多余的,我认为没有理由使用它。

【讨论】:

    【解决方案2】:

    在上述情况下,没有必要写返回,因为两者是等价的。

    但是,在某些情况下,您想要编写 return 是因为您的函数路径是分支的,并且出于充分的理由(例如简化或可读性)您希望在一个或多个分支(但不是所有分支)中提前返回

    例如,考虑以下情况:

    void foo(){
        if (a){
            //do something
        } else {
            //do something else
        }
    }
    

    函数路径是分支的,假设您想通过删除 else 块来减少代码的缩进。然后你可以编写上面的代码并提前返回如下:

    void foo(){
        if (a){
            //do something
            return;
        }
        //do something else    
    }
    

    在这种情况下,您可以考虑在返回 void 的函数中使用提前返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2010-10-31
      • 1970-01-01
      相关资源
      最近更新 更多