В большинстве больших проектов (программ) возникает множество ситуаций, когда программисту требуется делать большое количество предварительных объявлений функций и переменных. Часто функции определены в других файлах. Постоянно предварительно объявлять их становится утомительно. К тому же это может повлечь за собой множество ошибок в процессе написания кода. Процесс предварительного объявления упрощается с помощью использования заголовочных файлов, именно в них помещаются все предварительные объявления...
Вопрос не очень сложный. Но, как я уже много раз говорил, поскольку этот канал, в основном, для начинающих, то и вопросы здесь рассматриваются несложные. Ну и сам я тоже не до конца некоторые вещи понимаю, и это иногда является причиной не лезть в глубину (хотя иногда лезу, поэтому могу и ошибаться ))) В С++ прототипы функций обычно помещаются в отдельный файл, который называют включаемым (подключаемым) или заголовочным (потому что там обычно хранятся “заголовки” функций и некоторые глобальные объявления)...