根据ISO_14882_2014,3.6.1主要功能[basic.start.main]
The linkage (3.5) of main is implementation-defined.
它与g ++的联系是什么,因为g ++的官方文档似乎没有这些信息。
手册中没有直接提及,但在“GCC命令选项”一章中我们有:
-Wmain
警告main
的类型是否可疑。main
应该是一个具有外部链接的函数,返回int
,采用零参数,两个或三个适当类型的参数。默认情况下,此警告在C ++中启用,并由'-Wall
'或'-Wpedantic
'启用。
[强调补充]
由此我们可以推断出main
在此实现中的链接是外部的。
这是为了防止您意外调用主函数 - 或者编写'错误'主函数。
函数main不得在程序中使用。 main的链接(3.5)是实现定义的。将main定义为已删除或将main声明为内联,静态或constexpr的程序是错误的。名称main不以其他方式保留。