首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教 Delphi对尾递归进行优化吗?是从哪个版本开始的?或用什么编译指示字

2012-10-16 
请问 Delphi对尾递归进行优化吗?是从哪个版本开始的?或用什么编译指示字?如题。为了测试Delphi能否把尾递归

请问 Delphi对尾递归进行优化吗?是从哪个版本开始的?或用什么编译指示字?
如题。

为了测试Delphi能否把尾递归优化为循环,用了以下函数。结果当调用
TailRecursion(1000000, 1)时就发生栈溢出。我用的是Delphi 2007.
我想知道在Delphi后续版本中有没有对尾递归进行过优化,就像Erlang一样。

function TailRecursion(n: DWORD; sum: DWORD): DWORD;
begin
if n = 0 then
result := sum
else
result := TailRecursion(n -1, sum + 1);
end;

[解决办法]
太大了。。而且递归无论是时间还是空间都是很大的。。
[解决办法]
XE中也没有优化,即使使用inline指示也没有,连call都没消除掉啊。

热点排行