如何执行函数的参数?

时间:2012-05-21 17:45:55

标签: c

  

可能重复:
  function parameter evaluation order

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

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

2 个答案:

答案 0 :(得分:5)

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

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

我们称之为:

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

我们无法确定something_asomething_bsomething_c的执行顺序。

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

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

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

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

答案 1 :(得分:1)

  1. 逗号用作分隔参数的方法。逗号是运算符。

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