Механизм предварительной компиляции заголовков в современных компиляторах работает следующим образом: habr.com
- Создаётся заголовочный файл, который подключает заголовочные файлы для предварительной компиляции. habr.com
- На основании этого заголовочного файла генерируется специальный pch-файл (расширения: .pch, .gch, .pchi — в зависимости от компилятора). habr.com В нём содержится результат предварительной компиляции заголовочных файлов, подключённых в precompiled.h. habr.com
- Если компилятор при сборке очередного юнита видит включение precompiled.h, то он не считывает и не анализирует заново этот файл и все включённые в него заголовочные файлы, а использует вместо этого результат предварительной компиляции из pch-файла. habr.com
Цель предварительной компиляции — ускорить компиляцию программ, так как заголовочные файлы меняются гораздо реже файлов, содержащих код программы. ru.wikipedia.org
Детали реализации механизма предварительной компиляции могут отличаться в разных компиляторах. habr.com