background image

事实证明,
尾递归在 php 中是没有任何优化效果的!
C 中的尾递归
在 C 中的尾递归优化是 gcc 编译器做的。在 gcc 编译的时候加上-O2 会对尾递归进行优化

我们可以直接看生成的汇编代码:
(使用 gdb

 

, gcc –O2 factorial.c –o factorial; disass factorial)

未加-O2 生成的汇编:

加了 O2 优化的汇编: