c++ - main() 函数是可重入的吗?

标签 c++ c program-entry-point reentrancy

我听说在 C 中,main() 是可重入的,而在 C++ 中则不是。

这是真的吗?重新进入main()函数是什么场景?

最佳答案

早期的 C++ 实现基于对 C 的转换,通过在 main 的开头添加函数调用来实现全局构造函数。在这样的实现下,再次调用 main 将重新运行全局 ctors,造成严重破坏,因此根本禁止这样做。

另一方面,C 没有理由禁止调用 main,而且传统上总是可行的。

至于什么时候有用,我会说“很少”。我见过的大多数名为 main 的程序都是 IOCCC 条目。

关于c++ - main() 函数是可重入的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333848/

相关文章:

c - 出现在数组下标中的 "volatile"关键字的目的是什么?

c - 如何在 main 上切换字符串参数

c++ - int main() 和 signed main() 之间的区别

c++ - C++中的依赖注入(inject)

c++ - 调用 VirtualProtect 设置了错误的保护

c++ - C++中类与函数的模板类型推导?

c++ - 使用 MingW 时,RC_FILE 不适用于 QCoreApplication::applicationVersion

C: 将 argv[1] 转换为 double

c - 为什么这段代码运行没有任何输出(关于pthread)?

在不启动设备模拟器的情况下测试 BlackBerry 代码