C 中的 main() 递归:允许吗?
尽管 C 禁止递归到 main() 中,但是使用 g 编译如下代码而没有错误的实例:
int main() { main(); }
这就提出了一个问题:C 标准是否允许这样的递归?
答案:
C 标准明确禁止递归到第 3.6.1/3 节中的 main() 规定“不得在程序中使用 main 函数”。在这种情况下,“使用”指的是“其名称出现在可能评估的表达式中”的情况。
因此,在 C 程序中不允许递归调用 main()。编译器能够无错误地编译所提供的代码的能力可能是由于其特定于实现的优化或其对标准的解释中的漏洞。但是,不建议依赖这种行为,因为它违反了语言规范中的明确禁止。
以上是C 中允许递归到'main()”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!