擅长:python、mysql、java
<blockquote>
<p>Why isn't this seen as problem by default?</p>
</blockquote>
<p>该错误是运行时错误,而不是编译时错误。代码完全有效,只是做了些蠢事。您所展示的非常简单的案例当然可以被检测到,但许多情况只会稍微复杂一点就很难检测到:</p>
<pre><code>void evil() {
if (somethingThatTurnsOutToAlwaysBeTrue)
evil();
}
</code></pre>
<p>为了确定这是否是一个问题,编译器必须找出条件是否总是为真。在一般情况下,我不认为这比确定程序是否最终停止(即它是<a href="http://en.wikipedia.org/wiki/Halting_problem" rel="noreferrer">provably not computable</a>)更具可计算性。在</p>