2

I want to write some code with the following logic. From a clarity and conciseness point of view, is the first approach better than the other two?

if(kErrNone != (cs_error = get_last_error(component)))
{
    /* Do something. */
}


if((cs_error = get_last_error(component)) != kErrNone)
{
    /* Do something. */
}


cs_error = get_last_error(component);
if(cs_error != kErrNone)
{
    /* Do something. */
}
4

2 回答 2

4

对我来说,这是第三个。因为条件更容易评估。

于 2013-04-18T22:12:35.883 回答
1

从简洁的角度来看,前两个if块明显优于第三个。

实际上,第一个if和第二个if之间没有显着差异,因为您只是更改了比较表达式的两侧。

第三个不必要地添加了一个语句,因为对cs_error的赋值可以巧妙地组合到if块中。但是,是的,如果您对牙套不小心,就有可能出错。

于 2013-04-18T22:44:06.953 回答