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