标签: c gcc clang tail-recursion
想象一下这段代码:
int foo() { return foo(); }
编译器可以对此进行优化。我是否可以强制编译器为foo使用新的堆栈帧,而不是使用相同的堆栈帧(每种情况下,因此完全禁用优化不计算在内)?
答案 0 :(得分:8)
是的,-fno-optimize-sibling-calls选项。
-fno-optimize-sibling-calls
答案 1 :(得分:1)
在gcc中,尝试: