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

问题描述 投票:2回答:2

根据ISO_14882_2014,3.6.1主要功能[basic.start.main]

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

它与g ++的联系是什么,因为g ++的官方文档似乎没有这些信息。

c++ g++
2个回答
2
投票

手册中没有直接提及,但在“GCC命令选项”一章中我们有:

-Wmain警告main的类型是否可疑。 main应该是一个具有外部链接的函数,返回int,采用零参数,两个或三个适当类型的参数。默认情况下,此警告在C ++中启用,并由'-Wall'或'-Wpedantic'启用。

[强调补充]

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


0
投票

这是为了防止您意外调用主函数 - 或者编写'错误'主函数。

函数main不得在程序中使用。 main的链接(3.5)是实现定义的。将main定义为已删除或将main声明为内联,静态或constexpr的程序是错误的。名称main不以其他方式保留。

© www.soinside.com 2019 - 2024. All rights reserved.