У меня очень простой вопрос. Я только что начал c++ и задавался вопросом, почему
int main()
не нужно вызывать, он запускает и распечатывает
cout << "hello world";
без функции, фактически вызываемой...?
Спасибо за любую помощь.
Это называется, просто не вами. Ваша библиотека RTL компилятора вызывает его для вас. Когда процесс запускается, запускается код запуска RTL, который настраивает среду по мере необходимости (устанавливает глобальные переменные, анализирует командную строку и т.д.), Затем вызывает main()
при готовности и затем выходит из процесса после main()
и среда была очищена.
если вы запустите программу, текущий процесс (например, console/bash) будет разветвляться (т.е. сделать новый процесс, который является точной копией себя рядом с PID), после чего новый (скопированный процесс вызывает вашу программу, вызывая функцию main()
main
- это функция, которую операционная система вызывает для запуска вашей программы. Если бы не былоmain
, как вы думаете, с чего бы началась ваша программа?