【发布时间】:2021-01-25 15:18:25
【问题描述】:
O2 优化标志在编译时对堆栈帧有什么作用?如果你有一些这样的递归函数:
long long fibb(long long a, long long b, int n) {
return (--n>0)?(fibb(b, a+b, n)):(a);
}
【问题讨论】:
标签: c recursion optimization stack frames
O2 优化标志在编译时对堆栈帧有什么作用?如果你有一些这样的递归函数:
long long fibb(long long a, long long b, int n) {
return (--n>0)?(fibb(b, a+b, n)):(a);
}
【问题讨论】:
标签: c recursion optimization stack frames
编译后的代码不会有任何递归。 https://godbolt.org/z/7cWGhv
所以这种情况下的优化将完全消除递归。
【讨论】: