c的函数return返回上限问题

[复制链接]
查看11 | 回复3 | 2013-10-13 11:25:25 | 显示全部楼层 |阅读模式
楼主,没你想的那么复杂,还反汇编,请恕我无法从这个角度分析,其实问题很简单,x*1.1结果再传递进fun()函数,其实x根本没有变化,例如x传递进2,然后2*1.1结果为2.2,再传递给x,x为整形,就又变成2,然后一直这么下去,fun()永远不能返回你能把报的错截图发出来吗...
回复

使用道具 举报

千问 | 2013-10-13 11:25:25 | 显示全部楼层
上面解释得很清楚了,楼主看下面代码int fun(int x){
return x*1.1;}整型x的值不管是什么,fun()函数的返回值都是x。楼主写的递归永远不能反回一个数,所以会出现错误。...
回复

使用道具 举报

千问 | 2013-10-13 11:25:25 | 显示全部楼层
你错误的原因:第二个例子x是int型,通过x*1.1这个表达式传入的类型也是int型,所以x*1.1始终是2。问题2:你写的函数返回值存储在eax当中,32位机...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行