先计算,后入栈。
参数入栈顺序确定,从右到左。
参数计算顺序不确定,c/c++语言没有规定,可能从右到左,可能从左到右。
#include <iostream>
#include <stdio.h>
using namespace std;
void dis(int a, int b,int c)
{
}
int main() {
int x = 0;
dis(x++, x++,x);
return 0;
}
在vs编译器下,可查看到dis三个参数分别为1,0,2
可见,vs下参数计算顺序从右到左。
但是如果参数计算顺序为从左到右,三个参数分别为0,1,2,则会对函数的调用产生影响,应避免这种写法。