Почему функция int main() не требует прототипа?

Изучаю C++ по книжке С. Прата "Язык программирования C++. Лекции и упражнения", в ней было сказано, что прототип функции должен быть написан до её первого вызова. И main() следовательно должна иметь свой прототип, но в коде его нет. Добавляется ли прототип автоматически, или же его совсем нет? Если добавляется, то на каком этапе(компиляция исходного кода, компоновка, запуск программы в ос)?
  • Вопрос задан
  • 597 просмотров
Решения вопроса 1
@serega_kaktus
Программист-самоучка, фрилансер
Вы немного не разобрались в понятиях вызов функции, объявление функции и прототип функции.
Во-первых, int main - это объявление функции, а не вызов. Во-вторых, функция может быть объявлена без описания прототипа до объявления функции. А вот перед вызовом функции она должна быть либо объявлена, либо описан прототип.
А в книге советуют писать прототипы всех функций до объявления main, чтобы было удобно читать код. Никто вам не мешает объявить любую другую функцию до main без описания ее прототипа
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы