3

可能重复:
函数参数评估顺序

假设我有一个带有 4 个参数的函数。首先考虑执行哪个参数以及为什么。

我试图了解,用于函数原型的运算符的重要性。按照规则,它是首先考虑的最后一个变量吗?

4

2 回答 2

5

如果我们有一个具有以下原型的函数:

int function(int x, int y, int z);

我们这样称呼它:

function( something_a(), something_b(), something_c() );

我们无法推测 和 的执行something_a顺序。something_bsomething_c

另一方面,我们可以使用逗号运算符,如下所示:

int main() {
    int x;
    something_a(), something_b();
    something_c();
}

在这种情况下,我们知道something_a将被调用,然后something_b,最后something_c

总之,函数调用中的逗号不是逗号运算符。

于 2012-05-21T17:48:09.557 回答
1
  1. 逗号用作分隔参数的一种方式。逗号不是运算符。

  2. 函数参数的顺序取决于编译器和运行时堆栈的操作方式。该标准将其留给编译器来确定评估参数的顺序,因此您不应依赖于保留的特定顺序。

于 2012-05-21T17:50:40.900 回答