0

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

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

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

4

1 回答 1

2

这里的顺序定义为func1(&ps)execute before func2(ps)&&运算符具有称为短路的特性。如果左侧执行为 0,则右侧将永远不会执行。因此,您可以保证func1(&ps)在之前执行func2(ps)

于 2013-04-02T22:14:03.043 回答