首页 >后端开发 >C++ >C 中合法允许递归到 Main() 吗?

C 中合法允许递归到 Main() 吗?

DDD
DDD原创
2024-11-12 16:41:02930浏览

Is Recursion into Main() Legally Allowed in C  ?

探索 C 语言中递归到 Main() 的合法性

程序员之间经常争论的是递归到 C 语言中 main() 的合法性。 C.虽然一些消息来源表明这是禁止的,但其他消息来源则证明了编译器接受此类代码的看似矛盾的行为。

C 标准的视角

根据 3.6 中的 C 标准。 1/3,明确禁止递归到 main():“函数 main 不得在程序中使用。”

在标准上下文中理解“使用”

标准将“used”定义为:“如果对象或非重载函数的名称出现在潜在评估的表达式中,则使用该对象或非重载函数。”

在所提供的示例代码的情况下:

int main()
{
    main();
}

对 main() 的调用出现在 main() 的主体中,这是一个潜在评估的表达式。因此,根据标准的定义,main() 在程序中使用,使其非法。

编译器行为和潜在异常

尽管标准禁止,编译器还是喜欢g 可以编译这样的代码而不会出现错误。通常不建议也不应依赖此行为。编译器可能会以非标准或特定于实现的方式处理此类情况。

避免递归到 Main()

确保符合 C 标准并避免潜在问题,强烈建议避免递归到 main() 中。相反,请考虑使用替代设计模式或编程技术来实现所需的功能,而不违反语言的规则。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn