当前位置:  开发笔记 > 运维 > 正文

生产质量VC++代码的递归

如何解决《生产质量VC++代码的递归》经验,为你挑选了1个好方法。

在编写生产质量的VC++代码时,使用递归是否可以接受?为什么或者为什么不?



1> Orion Edward..:

有没有办法确定我会在什么时候遇到堆栈溢出?

并不是的.当你耗尽堆栈空间时会发生堆栈溢出 - 但是......

初始堆栈大小可以以编程方式更改,并且可能默认为不同的数量,具体取决于您的OS /编译器/等

已经用完了多少取决于你的应用程序(以及你的应用程序使用的库)以前做过什么 - 这通常无法预测

每个调用所需的堆栈数量取决于您在函数中执行的操作.如果你只在堆栈上分配1个整数,你可能能够重复一次,但是如果你在堆栈上分配一个200k的缓冲区,那就不那么重要了.

我曾经遇到过的唯一一次是无限循环,或使用前面提到的200k缓冲区.

我发现我的应用程序更容易崩溃,而不是使用100%CPU永远循环并且必须被强行杀死(由于Windows缺少SSH,这是一个错误连接的远程服务器上的正确PITA)

一个粗略的准则:你认为你的递归函数可能会连续称自己超过10000次吗?或者你正在做一些愚蠢的事情,比如在堆栈上分配200k缓冲区?

如果是,请担心.
如果不是,继续进行更重要的事情.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有