尾递归优化发生在Visual Studio 10的x64调试,但不是在释放? [英] tail recursion optimization happens in visual studio 10 x64 debug but not in release?

查看:88
本文介绍了尾递归优化发生在Visual Studio 10的x64调试,但不是在释放?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

原来我得到了在x86的模式计算器例外。正如我注意到,64将优化尾递归,所以我在切换到64位编译。和优雅地在调试模式中摸索出。但是当我试图运行发布代码..它扔计算器再次..任何可能的原因是什么?

originally I got a stackoverflow exception in x86 mode. As I noticed that x64 would optimize tail recursion so i switched to compile in x64. And it worked out gracefully in debug mode.. However when I tried to run the release code.. it throwed stackoverflow again.. any possible reason?

推荐答案

在应用尾递归优化是复杂和多变的规则。

The rules for when tail recursion optimizations are applied are complicated and ever-changing.

我会强烈建议您的的依赖从一个点的正确性尾递归。

I would strongly recommend that you don't rely on tail recursion from a correctness point of view.

这篇关于尾递归优化发生在Visual Studio 10的x64调试,但不是在释放?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆