标题:一个递归调用与返回值的问题,有难度
只看楼主
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

LZ,个人认为warning C4715: 'fun' : not all control paths return a value不应该是warning,应该是error。
如果LZ想很清除这些东西。我想可以看看汇编。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-06-02 12:19
youlong699
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-30
得分:0 
回复:(wfpb)LZ,个人认为warning C4715: \'fun\' : no...
是啊是啊,我看反汇编只能看个大概,汇编才学了个入门,正在学。我倒是看反汇编代码了,好像当返回类型是int 时,返回值是保存在EAX中的,而其后由于没有再次的return,EAX中一直是没有被改变。
你的意思是从语法才上严格的讲这是不正确的用法??

[此贴子已经被作者于2007-6-2 12:48:24编辑过]

2007-06-02 12:46
youlong699
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-30
得分:0 
以下是引用边城路人在2007-6-2 11:30:40的发言:
你可以理解为循环
当满足你的条件是就会结束
栈是运行时开辟的空间
就相当于一个容器
你最好看一下数据结构这本书
栈我是知道的,并且也知道递归可以用栈等效解决,并且编译完成后就是被译成了借助栈的函数调用。但简单的看作循环,把回归看作满足条件跳出循环是不是就不大恰当了啊?
我还有个想法就是,被调用的递归函数的返回值是保存在同一个地方的,每返回一层就根据结果修改一次,所以想到用返回对象做验证观察,结果成了上面的样子,越发解释不清楚了。
2007-06-02 12:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143602-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027550 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved