【发布时间】:2013-04-18 22:07:59
【问题描述】:
我想用以下逻辑编写一些代码。从清晰和简洁的角度来看,第一种方法是否比其他两种方法更好?
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. */
}
【问题讨论】:
-
我会使用第三种方式。
if块条件下的赋值很容易被误认为是比较。 -
第一个的好处是如果你不小心赋值,编译器会标记一个左值赋值错误。不过,我更喜欢第 3 种 - 犯错的机会最少。
标签: c if-statement coding-style