Ответ 1
В подавляющем большинстве случаев один из int main(void)
или int main(int argc, char* argv[])
- это то, что вам нужно использовать. В частности, если вы пишете программу, которая будет скомпилирована любым основным компилятором для работы на персональном компьютере, с полным набором стандартных библиотек C, вам почти наверняка потребуется вернуть int
из main
.
(Я бы также избежал использования пустого списка аргументов, см. "Почему мы не используем (void) в основном?" )
В стандарте C99 есть предусмотрены другие подписи, определенные в реализации, и вы можете использовать их, если вы прочитали руководство для своего компилятора, и оно говорит, что вы можете.
(5.1.2.2.1) Он должен быть определен с типом возврата int и без параметров... или с двумя параметрами... или каким-либо другим способом реализации
Лично я бы избегал их, даже если они разрешены (если это возможно), потому что это еще одна вещь, о которой нужно беспокоиться, если вам когда-нибудь понадобится порт в другую систему.
Смотрите комментарии ниже Почему мы не используем (void) в основном?" для некоторого интересного обсуждения этого вопроса.