探索 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中文网其他相关文章!