return 的效率

xufeng_sh 2011-12-30 09:21:16
小弟来此请教一个简单问题的答案。
就是一个函数返回值的效率情况:
return int;
return bool;
return void;
没有retrun;
请问效率由高到低的顺序是什么,为什么?
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hi_xiaohuo 2012-05-24
  • 打赏
  • 举报
回复
如果一个函数被其他的函数调用多次,是不是会影响效率?
majia2011 2011-12-30
  • 打赏
  • 举报
回复
如果没有返回值,只是节省了mov指令,就一条,对系统消耗不大。

如果你分支多,编译器可能会分出多个mov,这样指令多一点而已,消耗的是代码段的几个字节,对运行效率无太大影响。
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
难道 return 什么 不是由程序的要求决定的,而是可以由效率决定的。
Qyee16 2011-12-30
  • 打赏
  • 举报
回复
没啥区别吧。。。。。
only_lonely 2011-12-30
  • 打赏
  • 举报
回复
另,说一个八卦,为啥x86下几乎所有语言实现函数返回都是使用eax(扩张累加寄存器)作为保存结果的寄存器?

因为x86是CISC,mov eax,xxxx 要比诸如 mov edx,xxx之类的指令长度要小。
majia2011 2011-12-30
  • 打赏
  • 举报
回复
一样的,都是

mov eax,*
ret
only_lonely 2011-12-30
  • 打赏
  • 举报
回复
哦,这是C语言区。

基本上,如果你是x86, 以上你说的所有,都是一个 mov eax,xxx 汇编指令,本质上木有啥区别。
Defonds 2011-12-30
  • 打赏
  • 举报
回复
return 的效率。。。
yafeng_jiang 2011-12-30
  • 打赏
  • 举报
回复
这~!
return 是把要返回的值拷贝一份然后返回
个人觉得取决于拷贝的效率吧

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧