Как работают функции main() и void main()
Я начинаю на языке C. Может ли кто-нибудь объяснить подробно, используя пример, как main(), int main(), void main(), main (void), void main (void), int main (void) работают на языке C? Как в том, что происходит, когда мы используем void main() и что происходит, когда я использую int main() на простом языке и т.д.
Я знаю, но не могу понять, что он делает:
- main() - функция не имеет аргументов
- int main() - функция возвращает значение int
- void main() - функция ничего не возвращает и т.д.
когда я пишу простой мир привет, используя int main() return 0, он все равно дает мне тот же результат, что и при использовании void main()), так как это работает? Каково его применение?
Ответы
Ответ 1
Ни main()
, либо void main()
не являются стандартными C. Первый разрешен, так как он имеет неявное возвращаемое значение int
, делая его таким же, как int main()
. Цель возвращаемого значения main
- вернуть статус выхода в операционную систему.
В стандарте C единственными действительными сигнатурами для main
являются:
int main(void)
и
int main(int argc, char **argv)
Форма, которую вы используете: int main()
- это декларация старого стиля, которая указывает, что main
принимает неопределенное количество аргументов. Не используйте его - выберите один из указанных выше.
Ответ 2
Если вы действительно хотите понять ANSI C 89, мне нужно исправить вас с одной стороны; В ANSI C 89 разница между следующими функциями:
int main()
int main(void)
int main(int argc, char* argv[])
является:
int main()
- функция, которая ожидает неизвестное количество аргументов неизвестных типов. Возвращает целое число, представляющее статус программного приложения.
int main(void)
- функция, которая не ожидает аргументов. Возвращает целое число, представляющее статус программного приложения.
int main(int argc, char * argv[])
- функция, которая ожидает количество аргументов argc и аргументов argv []. Возвращает целое число, представляющее статус программного приложения.
О при использовании каждой из функций
int main (void)
- Вы должны использовать эту функцию, когда вашей программе не нужны начальные параметры для запуска/загрузки (параметры, полученные из ОС - из самой программы).
int main (int argc, char * argv [])
- Вы должны использовать эту функцию, когда вашей программе требуются начальные параметры для загрузки (параметры, полученные из ОС - из самой программы).
О void main()
В ANSI C 89 при использовании void main
и компиляции проекта AS -ansi -pedantic
(например, в Ubuntu) вы получите предупреждение о том, что ваша основная функция имеет тип void, а не тип int, но вы сможете запустить проект. Большинство разработчиков C склонны использовать int main()
во всех его вариантах, хотя void main()
также будет компилироваться.
Ответ 3
int main
возвращает integer
значение
while
void main
возвращает nothing