社区
C语言
帖子详情
调用者平衡堆栈的情况下能实现尾调用优化吗?
tabris17
2011-02-24 05:37:25
被调用者平衡堆栈的情况下,被调用函数会清理栈,能实现尾调用优化。
那要是调用者平衡堆栈时还能实现尾调用优化吗?
我记得C语言默认的函数调用方式就是调用者平衡堆栈的吧。
手头没有编译器,没法测试,有知道答案的直接告诉一下吧。
...全文
177
6
打赏
收藏
调用者平衡堆栈的情况下能实现尾调用优化吗?
被调用者平衡堆栈的情况下,被调用函数会清理栈,能实现尾调用优化。 那要是调用者平衡堆栈时还能实现尾调用优化吗? 我记得C语言默认的函数调用方式就是调用者平衡堆栈的吧。 手头没有编译器,没法测试,有知道答案的直接告诉一下吧。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tabris17
2011-02-24
打赏
举报
回复
[Quote=引用 5 楼 iambic 的回复:]
谁清理栈和尾递归优化根本没关系。
[/Quote]
果然,理解不深刻呀
iambic
2011-02-24
打赏
举报
回复
谁清理栈和尾递归优化根本没关系。
tabris17
2011-02-24
打赏
举报
回复
[Quote=引用 3 楼 iambic 的回复:]
能实现早就实现了。
[/Quote]
那到底是实现了还是没实现呢?
哎~等有空了我自己找个编译器测试下看看吧
iambic
2011-02-24
打赏
举报
回复
能实现早就实现了。
w0911h
2011-02-24
打赏
举报
回复
优化不优化是编译器决定的吧,不懂,等高手吧
Call 和 Return 使用
关于 Call 和 Return 使用方法的汇编源代码
dubbo监控中心控制台.rar
dubbo最新版本2.5.3监控中心monitor控制台admin.rar
Dalvik虚拟机 PPT版
Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Android应用程序中的Dalvik虚拟机实例实际上是从Zygote进程的地址空间拷贝而来的,这样就可以加快Android应用程序的启动速度。Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法
调用
(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集是基于
堆栈
的。这个PPT讲Dalvik虚拟机的内存管理、垃圾收集、即时编译、Java本地
调用
、进程和线程管理等。理解Dalvik虚拟机的上述
实现
细节,有助于在运行时修改程序的行为,例如,拦截Java函数的
调用
。
函数
调用
堆栈
图
熟悉函数
调用
时的
堆栈
操作是学好汇编语言的必备知识,在此只写出了最简单的函数
调用
过程 , 有错误的地方,欢迎批评指正. 注:该程序通过VS2012编译. 函数
调用
方式为C
调用
方式 : A. 用栈自右向左传参 B :
调用
者
平衡
堆栈
由于使用xls画的
堆栈
图,只能以贴图方式进行. 1. C语言的源码 #include "stdafx.h"
Windows上获取当前
调用
堆栈
信息,StackWalker的C语言
实现
引子 这几天为了用编程的方式获取当前的
调用
堆栈
信息,在网上进行了一番大查找。发现在Linux平台上获取当前
调用
堆栈
的信息相对容易。但在windows平台上获取当前
调用
堆栈
的信息就不是那么容易了。 网上有不少介绍windows平台上获取
调用
堆栈
的文献,还有一些示例性的代码,但是绝大多数都不完整,没有办法直接运行得到结果。顺便说一句,这种风气要不得,明明自已都不清楚是否可以得到正常的结果,就把代码贴了...
C语言
70,036
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章