说我有一个返回空白的函数,
void foo(void)
{
// code
}
或
void foo(void)
{
// code
return;
}
我想知道哪一个在实践中更好?第一个是否有任何潜在的问题?
答案 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
}
在这种情况下,您可以考虑在空白返回函数中使用早期返回。