尾部递归优化发生在visual studio 10 x64调试但不在发布中?

col*_*ang 8 c# visual-studio-2010

最初我在x86模式下遇到了stackoverflow异常.我注意到x64会优化尾递归,所以我切换到x64编译.并且它在调试模式下优雅地运行.但是当我尝试运行发布代码时...它再次抛出stackoverflow ..任何可能的原因?

Jon*_*eet 6

应用尾递归优化的规则是复杂且不断变化的.

我强烈建议您不要从正确的角度来看尾递归.

  • @kgadek:如果语言不保证尾递归,那么你不能依赖它.Scheme是一种语言的示例,从符合语言的实现中需要尾调用优化.C#不是一种需要这种语言的语言,所以如果因为递归太多而烧掉堆栈,除了C#标准之外,没有任何你可以抱怨的东西. (2认同)