我正在查看一段调用两个函数func1(struct * ps)和func2(struct ps)的代码。 func1()返回ps指向的struct中的结果,然后用于调用func2()。这就是代码的外观,
if(func1(&ps) && func2(ps))
{
<<do something>>
}
这是C代码。我很确定调用func1()和func2()的顺序依赖于编译器。但是,仍需要专家意见。感谢。
答案 0 :(得分:2)
此处的订单定义为func1(&ps)
在func2(ps)
之前执行。 &&
运算符具有称为短路的属性。如果左侧执行为0,则右侧将永远不执行。因此,我们保证在func1(&ps)
func2(ps)