我碰巧偶然发现了这段代码.
int x(int a){
std::cout<<a<<std::endl;
return a + 1;
}
int main()
{
std::cout<<sizeof(x(20))<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我预计它打印20跟随4.但它只是打印4.为什么会这样?优化函数是不正确的,有副作用(打印到IO /文件等)?
Cat*_*lus 15
sizeof 是一个编译时运算符,永远不会计算操作数.