我问,因为我的编译器似乎这么认为,即使我没有.
echo 'int main;' | cc -x c - -Wall
echo 'int main;' | c++ -x c++ - -Wall
Clang没有发出任何警告或错误,gcc只发出温和的警告:'main' is usually a function [-Wmain]但是只有在编译为C时才指定.指定a -std=似乎并不重要.
否则,它编译和链接很好.但在执行时,它立即终止SIGBUS(对我来说).
阅读(C)和C++中main()返回的(优秀)答案?和快速的grep通过语言规范,这肯定会似乎对我来说,一个主要的功能是必需的.但是gcc -Wmain('main' 通常是一个函数)的冗语(以及这里的错误缺失)似乎可能暗示其他情况.
但为什么?是否有一些奇怪的边缘案例或"历史"用途?谁知道什么给了?
我想,我的观点是,我认为这应该是托管环境中的错误,是吗?