C 中 main() 的递归:合法与否?
关于 C 的一个常见误解是递归到 main() 的合法性) 功能。虽然从直觉上看,这种做法是被禁止的,但编译器通常并不反对此类代码。为了澄清这个问题,让我们深入研究一下 C 标准的复杂性。
根据 C 标准 (3.6.1/3),不允许递归到 main() 中。该标准明确规定“不得在程序中使用 main 函数”。在这种情况下,“used”意味着该函数在潜在计算表达式中被引用。
因此,以下代码违反了 C 标准:
int main() { main(); }
尽管如此禁止,某些编译器在遇到此类代码时可能不会发出错误。这可能会导致开发人员相信递归到 main() 是合法的,但重要的是要注意这种行为是错误的。对编译器接受度的依赖不应取代对标准的遵守。
总之,根据 C 标准,递归到 main() 是非法的。虽然编译器可能并不总是强制执行此规则,但开发人员应了解标准的要求并在代码中避免这种做法。
以上是在 C 中递归到 `main()` 合法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!