Является ли int main действительной программой на C / C ++?
Я спрашиваю, потому что мой компилятор, кажется, так думает, хотя я не думаю.
echo 'int main;' | cc -x c - -Wall
echo 'int main;' | c++ -x c++ - -Wall
Clang не выдает ни предупреждения, ни ошибки, а gcc выдает только кроткое предупреждение:'main' is usually a function [-Wmain]
, но только при компиляции как C. Указание-std=
не имеет значения.
В противном случае, он компилируется и ссылки нормально. Но при исполнении он сразу заканчиваетсяSIGBUS
(для меня).
Прочитав (отличные) ответы наЧто должно возвращать main () в C и C ++? и быстрый поиск по языковым спецификациям, это, безусловно,казаться для меня это главноефункция необходимо. Но словоблудие от GCC's-Wmain
(«Основным» являетсяобычно функция) (и недостаток ошибок здесь), возможно, предполагает иное.
Но почему? Есть ли какой-то странный крайний случай или «историческое» использование для этого? Кто-нибудь знает, что дает?
Я полагаю, что я действительно считаю, что это должно бытьошибка в размещенной среде, а?