可能重复:
函数参数评估顺序
假设我有一个带有 4 个参数的函数。首先考虑执行哪个参数以及为什么。
我试图了解,
用于函数原型的运算符的重要性。按照规则,它是首先考虑的最后一个变量吗?
如果我们有一个具有以下原型的函数:
int function(int x, int y, int z);
我们这样称呼它:
function( something_a(), something_b(), something_c() );
我们无法推测 和 的执行something_a
顺序。something_b
something_c
另一方面,我们可以使用逗号运算符,如下所示:
int main() {
int x;
something_a(), something_b();
something_c();
}
在这种情况下,我们知道something_a
将被调用,然后something_b
,最后something_c
。
总之,函数调用中的逗号不是逗号运算符。
逗号用作分隔参数的一种方式。逗号不是运算符。
函数参数的顺序取决于编译器和运行时堆栈的操作方式。该标准将其留给编译器来确定评估参数的顺序,因此您不应依赖于保留的特定顺序。