Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对我的程序由于以下两个问题而崩溃感到沮丧:
如果编译器足够胜任,这些似乎是可以预防的问题。如何以编程方式预防这些问题?
出于优化原因,现代编译器可以并且执行展开循环,但是在不提前知道一些数据的情况下,甚至无法对循环是否会终止进行启发式(参见:数据流编程)。事实上,决定你的程序本身是否会终止被称为停止问题
在其他情况下,您需要无限循环。例如,图形引擎通常会做这样的事情:
while(true) render
至于你的 SQL 连接......我想当你错过一个时应该很明显。在某些情况下,当您不提供 INNER JOIN 时,它是隐含的,因此从这个意义上说,您的编译器正在修复这个确切的问题。