Во многих языках программирования (в широком смысле) есть возможность вставить файл. Имеется в виду, что в каком-то месте указано имя файла командой вроде include, которая предписывает вставить в это место содержимое указанного файла. Это широко используется в Си и других языках GNU Compiler Collection. Есть такая команда и в Фортране, есть \input в ТеХ, и много где еще. Это не лучший способ организации кода, но иногда бывает полезен и, главное, до сих пор используется. Вим обладает средствами поиска...
Для того, чтобы ваш код превратился посредством компиляции в рабочую программу, он должен пройти несколько важных преобразований. Они называются этапами трансляции. Подробнее о трансляции можно почитать в официальной документации вот здесь. В одну из фаз трансляции в работу включается препроцессор. Когда начинается его работа, он просматривает файл кода в поисках директив, оставленных программистом для него. После чего, препроцессор исполняет все директивы. В каждой программе с вводом и выводом...