可能重复:
在 C 中调用函数之前的参数评估顺序
对于下面的代码,我预计输出为 20 和 76,但 75 和 21 是作为输出来的。请解释为什么会这样。
#include<stdio.h>
unsigned func(unsigned n)
{
unsigned int a =1 ;
static unsigned int b=2;
a+=b; b+=a;
{
unsigned int a=3;
a+=b; b+=a;
}
//printf("%d %d ",a,b);
return (n+a+b);
}
int main()
{
printf("%d %d\n",func(4),func(5));
return 0;
}