编程
malik76
这个作者很懒,什么都没留下…
展开
-
递归使用的注意事项
任何事情都是一分为二的,递归虽然有许多诸如解决复杂问题、缩短程序代码、提高变成效率等优点,但是它也有许多致命的弱点。可以想象,递归调用的过程可能象一个无底深渊,永远不能返回。我们知道函数在调用另一个函数时,需要把原来的函数的局部变量、返回地址等压入堆栈(即所谓的保留现场),以达到正常返回和继续执行。在一个函数进行递归调用时,每一次调用它本身,就象调用一个新的函数一样,他的所有的局部变量都要在内...原创 2011-09-26 00:06:09 · 1211 阅读 · 0 评论 -
堆和栈速度比较
至于堆和栈哪个更快,从两方面来考虑: 1.分配和释放,堆在分配和释放时都要调用函数(MALLOC,FREE),比如分配时会到堆空间去寻找足够大小的空间(因为多次分配释放后会造成空洞),这些都会花费一定的时间,具体可以看看MALLOC和FREE的源代码,他们做了很多额外的工作,而栈却不需要这些。 2.访问时间,访问堆的一个具体单元,需要两次访问内存,第一次得取得指针,第二次才...原创 2011-09-26 21:03:04 · 1946 阅读 · 0 评论