首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

return 的效率,该怎么处理

2012-05-27 
return 的效率小弟来此请教一个简单问题的答案。就是一个函数返回值的效率情况:return intreturn boolret

return 的效率
小弟来此请教一个简单问题的答案。
就是一个函数返回值的效率情况:
return int;
return bool;
return void;
没有retrun;
请问效率由高到低的顺序是什么,为什么?

[解决办法]
哦,这是C语言区。

基本上,如果你是x86, 以上你说的所有,都是一个 mov eax,xxx 汇编指令,本质上木有啥区别。
[解决办法]
一样的,都是

mov eax,*
ret
[解决办法]
另,说一个八卦,为啥x86下几乎所有语言实现函数返回都是使用eax(扩张累加寄存器)作为保存结果的寄存器?

因为x86是CISC,mov eax,xxxx 要比诸如 mov edx,xxx之类的指令长度要小。
[解决办法]
难道 return 什么 不是由程序的要求决定的,而是可以由效率决定的。
[解决办法]
如果没有返回值,只是节省了mov指令,就一条,对系统消耗不大。

如果你分支多,编译器可能会分出多个mov,这样指令多一点而已,消耗的是代码段的几个字节,对运行效率无太大影响。

热点排行