读书人

return 的效率,该怎么处理

发布时间: 2012-05-27 05:42:30 作者: rapoo

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,这样指令多一点而已,消耗的是代码段的几个字节,对运行效率无太大影响。

读书人网 >C语言

热点推荐