2016-02-15 59 views
0

说我有一个空隙返回函数,我应该写回报;在一个void返回函数?

void foo(void) 
{ 
    // code 
} 

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

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

+3

两者都可以。最好遵循你的小组的编码标准。如果你没有,创建它们。 – chux

+2

它没有必要。你提到的两个功能是等价的。 –

回答

1

这两种情况完全相同。

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

1

在上面的例子中,没有必要写回报,因为两者都是等价的。

但是,有些情况下,您想写返回,因为您的函数路径是分支的,并且您希望有一个或多个分支(但不是所有分支)提前返回,原因很充分(如简化或可读性)

例如,请考虑以下情况:

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

功能路径分支,并假设你想通过删除其他块,以减少你的代码的缩进。然后,你可以使用提前返回如下写上面的代码:

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

在这种情况下,您可以考虑使用一个空隙返回函数提前返回的。

相关问题