我应该写回报;在一个空洞返回功能?

时间:2016-02-15 15:32:30

标签: c function

说我有一个返回空白的函数,

void foo(void)
{
    // code
}

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

我想知道哪一个在实践中更好?第一个是否有任何潜在的问题?

2 个答案:

答案 0 :(得分:1)

两种情况完全相同。

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

答案 1 :(得分:1)

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

但是,有些情况下,您希望编写返回值,因为您的函数路径是分支的,并且您希望在一个或多个分支(但不是所有分支)中提前返回,原因很简单(例如简化或可读性)< / p>

例如,请考虑以下情况:

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

函数路径是分支的,并且假设您希望通过删除else块来减少代码的缩进。然后你可以在早期返回时编写上面的代码,如下所示:

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

在这种情况下,您可以考虑在空白返回函数中使用早期返回。