2 sinat 27590807 sinat_27590807 于 2015.07.25 16:12 提问

关于函数调用速度的问题

在C,C++中,如果把主函数分成几个子函数,会不会速度更快?

6个回答

guwei4037
guwei4037   Ds   Rxr 2015.07.25 16:30

不会。

要想使程序运行速度更快,需要在算法、代码层次上面做优化。

CSDNXIAON
CSDNXIAON   2015.07.25 16:22

,函数调用问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

quint0n
quint0n   2015.07.25 16:23

函数调用要花时间的,可考虑反汇编成汇编语言代码看看。

caozhy
caozhy   Ds   Rxr 2015.07.25 16:28

当然不会,函数调用需要变量放入堆栈,跳转,都要开销。
当然,有些情况下会,比如你的函数是内联的,并且因为局部变量排列更紧凑,可能利用缓存的效率更高。但是通常来说不会。

zuishikonghuan
zuishikonghuan   2015.07.26 08:35

当然不会,而且还会浪费效率!
因为函数调用时需要将参数入栈,保护现场(返回地址入栈,寄存器入栈),执行现场跳转,局部变量入栈,调用完成还要平衡堆栈,所以这样做速度会变慢!
调用函数具体细节请百度:调用约定

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.26 18:02

其实本身C++和C就已经不慢了,刻意去分开函数,也没有多大作用,顺其自然使用是最好的

Csdn user default icon
上传中...
上传图片
插入图片