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