Является ли 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 («Основным» являетсяобычно функция) (и недостаток ошибок здесь), возможно, предполагает иное.

Но почему? Есть ли какой-то странный крайний случай или «историческое» использование для этого? Кто-нибудь знает, что дает?

Я полагаю, что я действительно считаю, что это должно бытьошибка в размещенной среде, а?

Ответы на вопрос(9)

Ваш ответ на вопрос