通常我使用C构建函数,它检查一些参数并返回错误代码。计算函数返回值的最佳做法
当我发现错误时,哪种停止值检查的最佳方法是什么?
第一个例子:
ErrorCode_e myCheckFunction(some params)
{
ErrorCode_e error = CHECK_FAILED;
if(foo == bar)
{
if(foo_1 == bar_1)
{
if(foo_2 == bar_2)
{
error = CHECK_SUCCESS;
}
}
}
return error;
}
第二个例子:
ErrorCode_e myCheckFunction(some params)
{
if(foo != bar)
{
return CHECK_FAILED;
}
if(foo_1 != bar_1)
{
return CHECK_FAILED;
}
if(foo_2 != bar_2)
{
return CHECK_SUCCESS;
}
}
我更喜欢第一种方法,因为我读的是MISRA规则,避免多个return语句。
哪种方法最好?
如果你更喜欢第一个,这是最好的(对你):) –
这实际上不是一个基于意见的问题。 OP更喜欢一个版本,因为MISRA-C告诉他,没有任何理由说明。这里真正的问题是为什么MISRA-C发表这样的声明。在过去,我已经为甚至存在这条规则的底部,下面回答。 – Lundin
可能的重复模式,以防止不断检查错误?(http://stackoverflow.com/questions/24658258/pattern-to-prevent-continually-checking-error) – Toby