Я спрашиваю, потому что мой компилятор, похоже, так думает, хотя я этого не делаю.
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 и С++? и быстрый grep через спецификации языка, это, безусловно, Мне кажется,, что требуется основная функция. Но словосочетание gccs -Wmain
('main < обычно функция) (и недостаток ошибок здесь), по-видимому, может предложить иначе.
Но почему? Есть ли какой-то странный краевой вариант или "историческое" использование для этого? Кто-нибудь знает, что дает?
Моя точка зрения, я полагаю, заключается в том, что я действительно думаю, что это должна быть ошибка в размещенной среде, а??