Я написал следующий код:
#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;
}
Я ожидал, что он напечатает:
f()
v()
3
компиляция с g++ -O0 test.cpp -o test.out
и выполнение результатов:
f()
3
Почему вызов v опускается? (это не может быть сделано для оптимизации, потому что я добавил флаг -O0
)