if语句中的执行顺序

时间:2013-04-02 22:12:17

标签: c if-statement

我正在查看一段调用两个函数func1(struct * ps)和func2(struct ps)的代码。 func1()返回ps指向的struct中的结果,然后用于调用func2()。这就是代码的外观,

if(func1(&ps) && func2(ps)) 
{
<<do something>>
}

这是C代码。我很确定调用func1()和func2()的顺序依赖于编译器。但是,仍需要专家意见。感谢。

1 个答案:

答案 0 :(得分:2)

此处的订单定义为func1(&ps)func2(ps)之前执行。 &&运算符具有称为短路的属性。如果左侧执行为0,则右侧将永远不执行。因此,我们保证在func1(&ps)

之前执行func2(ps)