为了账号安全,请及时绑定邮箱和手机立即绑定

这两种形式上的,在效率上差别很大吗?

这两种形式上的,在效率上差别很大吗?

千巷猫影 2022-10-01 13:09:46
使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

1.直接调用函数,编译的时候,被调函数的地址(或偏移)直接写入指令;
2.使用函数指针时,运行期从内存中取地址,在使用call指令

理论上,这存在效率差异。
根据你的系统环境:服务器、PC还是嵌入式处理器、单片机等,及你的代码的时间敏感程度:如时序严格的驱动还是MS,等等因素,自己可以判断使用。还有一点需要强调:使用函数指针是为了获得某种灵活或模型(C++编译器内部大量使用函数指针),所以,这是一种平衡。

查看完整回答
反对 回复 2022-10-06
?
跃然一笑

TA贡献1826条经验 获得超6个赞

这个和你具体使用的编译器也有关系,如果使用优化程度很高的编译器,那么他们之间的效率差异就会很小。

查看完整回答
反对 回复 2022-10-06
?
慕标5832272

TA贡献1966条经验 获得超4个赞

差别不会很大, 就是代码空间不同, 用函数指针会增大代码空间

查看完整回答
反对 回复 2022-10-06
  • 3 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信