首页 > 后端开发 > C++ > 正文

在 C 中递归到 `main()` 合法吗?

DDD
发布: 2024-11-18 20:13:02
原创
534 人浏览过

Is Recursion into `main()` Legal in C  ?

C 中 main() 的递归:合法与否?

关于 C 的一个常见误解是递归到 main() 的合法性) 功能。虽然从直觉上看,这种做法是被禁止的,但编译器通常并不反对此类代码。为了澄清这个问题,让我们深入研究一下 C 标准的复杂性。

根据 C 标准 (3.6.1/3),不允许递归到 main() 中。该标准明确规定“不得在程序中使用 main 函数”。在这种情况下,“used”意味着该函数在潜在计算表达式中被引用。

因此,以下代码违反了 C 标准:

int main()
{
    main();
}
登录后复制

尽管如此禁止,某些编译器在遇到此类代码时可能不会发出错误。这可能会导致开发人员相信递归到 main() 是合法的,但重要的是要注意这种行为是错误的。对编译器接受度的依赖不应取代对标准的遵守。

总之,根据 C 标准,递归到 main() 是非法的。虽然编译器可能并不总是强制执行此规则,但开发人员应了解标准的要求并在代码中避免这种做法。

以上是在 C 中递归到 `main()` 合法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板