Как работают функции 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