g++中“main( )”的链接是什么
What is the linkage of `main( )` in g++
根据ISO_14882_2014,3.6.1 Main function [basic.start.main]
The linkage (3.5) of main is implementation-defined.
++作为g++的官方文档似乎没有这些信息。
手册中没有直接提到,但在"GCC 命令选项"一章中,我们有这个:
-Wmain
如果main
类型可疑,则发出警告。main
应该是具有外部功能的函数 链接,返回int
,取零个参数,两个或三个参数 适当的类型。默认情况下,此警告在 C++ 中处于启用状态,并且已启用 通过"-Wall
"或"-Wpedantic
"。
[强调后加]
由此我们可以推断,此实现中main
的链接是外部的。
这是为了防止你意外调用你的主函数 - 或者写一个"错误"的主函数。
主函数不得在程序中使用。联动 (3.5( 的主是实现定义的。定义主的程序 删除或声明 main 为内联、静态或 constexpr 是 格式不正。主要名称不保留。
相关文章:
- 返回的指向C++对象的链接是什么样的
- Clang 8 带有静态 constexpr 和数组的链接器错误 - 错误是什么以及如何解决它?
- 使用动态链接加载程序 <dlfcn.h> 而不是直接函数调用的目的是什么?
- 在使用库时,找到要链接的必要库的快速方法是什么
- 是什么导致macOS Mojave上的GoogleTest链接错误
- 将枚举与 CMake 链接的正确方法是什么?
- 在没有额外代码的情况下链接两个独立类的最通用方法是什么?
- 字符串文本不能有外部链接的原因是什么?
- 我的链接列表反向递归方法的代码的问题是什么?
- g++中“main( )”的链接是什么
- 在Linux上构建具有链接时代码生成功能的静态库的正确方法是什么
- 以下功能的链接是什么
- 为什么我使用静态库编译和链接是正确的,而动态库是错误的
- 动态链接是如何工作的,它的用法以及如何以及为什么要制作dylib
- gcc/ld:什么对-Wl,-rpath在动态链接中什么对-l在静态链接中
- Visual studio c++静态链接做什么
- c库的链接点是什么
- 与gcc和g++的链接有什么区别吗?
- main()的链接是由实现定义的,这意味着什么
- 名称或类型具有某种语言链接意味着什么