猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
这两种形式上的,在效率上差别很大吗?
使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址。
千巷猫影
浏览 110
回答 3
3回答
一只斗牛犬
1.直接调用函数,编译的时候,被调函数的地址(或偏移)直接写入指令;2.使用函数指针时,运行期从内存中取地址,在使用call指令理论上,这存在效率差异。根据你的系统环境:服务器、PC还是嵌入式处理器、单片机等,及你的代码的时间敏感程度:如时序严格的驱动还是MS,等等因素,自己可以判断使用。还有一点需要强调:使用函数指针是为了获得某种灵活或模型(C++编译器内部大量使用函数指针),所以,这是一种平衡。
0
0
0
跃然一笑
这个和你具体使用的编译器也有关系,如果使用优化程度很高的编译器,那么他们之间的效率差异就会很小。
0
0
0
慕标5832272
差别不会很大, 就是代码空间不同, 用函数指针会增大代码空间
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
嵌入式
我该怎么设置,64KB的扩展flash应该对我这程序应该是够了吧。求大神解答
2 回答
为什么主函数里边的两个for循环为什么换成 for(n=7; n>0; n--) 就不行?
3 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续