Функцию main() нельзя предопределять и/или перегружать. Ее нельзя вызывать из программы. Нельзя объявлять inline или static.
Тип возвращаемого значения для функции main() - только int. Некоторые компиляторы (например, Microsoft) допускают объявление функции main() и с типом возвращаемого значения void. Но это не соответствует стандарту и, соответственно, непереносимо.
Все компиляторы должны поддерживать следующие варианты функции main():
Соответственно, все остальные варианты непереносимы, так как компиляторы не обязаны их поддерживать.
int main()
{
}
иint main(int argc, char* argv[])
{
}
Соответственно, все остальные варианты непереносимы, так как компиляторы не обязаны их поддерживать.
В теле функции может не быть инструкции return. Компилятор должен интерпретировать это как наличие return 0;.