【发布时间】:2014-02-07 14:10:40
【问题描述】:
我正在研究一些代码,发现了这个 (here):
void ass_set_margins(ASS_Renderer *priv, int t, int b, int l, int r)
{
if (priv->settings.left_margin != l || priv->settings.right_margin != r ||
priv->settings.top_margin != t || priv->settings.bottom_margin != b) {
priv->settings.left_margin = l;
priv->settings.right_margin = r;
priv->settings.top_margin = t;
priv->settings.bottom_margin = b;
ass_reconfigure(priv);
}
}
我想知道为什么需要首先检查值,以便如果其中一个与传递的参数不同,那么我们用传递的参数分配所有值?如果我们不检查就全部通过了怎么办?更少的代码,更少的开销?
改变状态的开销不仅仅是检查它吗?
【问题讨论】:
标签: c if-statement comparison variable-assignment overhead