C++ 中的 main 定义

💡 原文中文,约900字,阅读约需2分钟。
📝

内容提要

C++ 新标准不允许为 main 函数指定链接规范。大多数编译器仍然按照 C 语言的方式处理 main 函数。文章建议在命名空间外定义一个新的 main 函数来调用命名空间中的 main,以避免潜在问题。

🎯

关键要点

  • 新的 C++ 标准中不允许给 main 指定 linkage-specification。
  • 大多数编译器仍然按照 C 语言的方式处理 main 函数。
  • 在 C++ namespace 中定义 main 函数可能导致问题。
  • 建议在命名空间外定义一个新的 main 函数来调用命名空间中的 main,以避免潜在问题。

延伸问答

C++ 中 main 函数的链接规范有什么变化?

新的 C++ 标准中不允许给 main 函数指定链接规范。

大多数编译器如何处理 C++ 中的 main 函数?

大多数编译器仍然按照 C 语言的方式处理 main 函数。

在 C++ 命名空间中定义 main 函数会有什么问题?

在 C++ namespace 中定义 main 函数可能导致问题,因为它不符合 C++ 的习惯。

如何避免在命名空间中定义 main 函数带来的问题?

建议在命名空间外定义一个新的 main 函数来调用命名空间中的 main。

为什么要去掉 extern "C" 在 main 函数前面?

去掉 extern "C" 是为了符合新的 C++ 标准,避免链接问题。

在 C++ 中,如何正确调用命名空间中的 main 函数?

可以在命名空间外定义一个新的 main 函数,使用 return foo::bar::baz::main(); 来调用。

➡️

继续阅读