当我执行下面的代码时,我对输出结果感到困惑。
代码:
int add(int a, int b)
{
cout<<"inside int add function"<<endl;
return a+b;
}
float add(float a, float b)
{
cout<<"inside float add function"<<endl;
return a+b;
}
int main()
{
cout<<add(10.0f,20.0f)<<endl<<add(20,50);
return 0;
}
输出:
inside int add function
inside float add function
30
70
我不明白cout消息的顺序是如何在控制台中打印的。但我期望上面的程序输出如下:
inside float add function
30
inside int add function
70
有人可以解释一下上述行为吗?
cout
之前只是评估了这两个函数。所以你看到它先运行了 int add 函数,然后是 float add 函数,最后才是cout
。 - cf-return Something(getWhatever(), getWhatever());
相同,编译器有时会交换两个调用。 - user1551592add(1,2)+add(1.0,2.0)
,那么对add
的调用可以以任何顺序发生,对吧? - David Schwartz