我问是因为我的编译器似乎是这样认为的,即使我没有。
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
(对我来说)。
通读以下内容的(优秀)答案:main()在C和C ++中应该返回什么?以及通过语言规范的快速grep,在我看来,肯定需要一个主要功能。但是gcc -Wmain
('main' 通常是一个函数)的废话(以及此处缺少错误)似乎暗示了其他方面。
但为什么?是否有一些奇怪的极端情况或“历史性”用法?有人知道会给什么吗?
我的意思是,我真的认为这在托管环境中应该是一个错误,是吗?
-pedantic
或有任何-std
。我的系统c99
也编译此文件而没有警告或错误...
main
,这不太可能起作用。如果使用“正确的”值初始化main,则实际上可能会返回...
main
)可能有所不同
main=195;
gcc -std=c99 -pedantic ...