g++中“main( )”的链接是什么

What is the linkage of `main( )` in g++

本文关键字:链接 是什么 main g++      更新时间:2023-10-16

根据ISO_14882_2014,3.6.1 Main function [basic.start.main]

The linkage (3.5) of main is implementation-defined.

g

++作为g++的官方文档似乎没有这些信息。

手册中没有直接提到,但在"GCC 命令选项"一章中,我们有这个:

-Wmain 如果main类型可疑,则发出警告。 main应该是具有外部功能的函数 链接,返回int,取零个参数,两个或三个参数 适当的类型。默认情况下,此警告在 C++ 中处于启用状态,并且已启用 通过"-Wall"或"-Wpedantic"。

[强调后加]

由此我们可以推断,此实现中main的链接是外部的。

这是为了防止你意外调用你的主函数 - 或者写一个"错误"的主函数。

主函数不得在程序中使用。联动 (3.5( 的主是实现定义的。定义主的程序 删除或声明 main 为内联、静态或 constexpr 是 格式不正。主要名称不保留。