ely*_*hiv 15 c++ comma-operator
我写了以下代码:
#include <iostream>
using namespace std;
int f()
{
cout << "f()" << endl;
return 3;
}
int v()
{
cout << "v()" << endl;
return 4;
}
int main()
{
int m = f(),v();
cout << m << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望它打印:
f()
v()
3
Run Code Online (Sandbox Code Playgroud)
编译g++ -O0 test.cpp -o test.out并运行结果:
f()
3
Run Code Online (Sandbox Code Playgroud)
为什么省略对v的调用?(这不能做优化,因为我添加了标志-O0)
bil*_*llz 21
int m = f(),v();
Run Code Online (Sandbox Code Playgroud)
该语句执行f()并将返回值赋给m,然后声明v()返回int类型的函数.int v();也被称为最烦恼的解析.
要完成comma operator测试,请尝试:
int m;
m = f(),v();
cout << m << endl;
Run Code Online (Sandbox Code Playgroud)
看现场样本.