最近,我正在审查我维护的一些代码,我注意到一种与我习惯不同的做法。因此,我想知道在函数中执行提前返回时使用哪种方法。
这里有一些例子:
版本 1:
int MyFunction(int* ptr)
{
if(!ptr) { // oh no, NULL pointer!
return -1; // what was the caller doing? :(
}
// other code goes here to do work on the pointer
// ...
return 0; // we did it!
}
版本 2:
int MyFunction(int* ptr)
{
if(!ptr) { // oh no, NULL pointer!
return -1; // what was the caller doing? :(
} else { // explicitly show that this only gets call when if statement fails
// other code goes here to do work on the pointer
// ...
return 0; // hooray!
}
}
因此,我想知道对于那些忍受(并幸存)许多代码审查的人来说,哪个被认为是“最佳实践”。我知道每个都有效地做同样的事情,但是“其他”是否在可读性和清晰度方面增加了很多?谢谢您的帮助。