Использовать заголовочные файлы, состоящие только из директив #include? - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в C ++, и в настоящее время я читаю некоторый код, который имеет несколько заголовочных файлов вида:

#include <some standard library>
#include <some standard library>
...


#include <some third party library header>
#include <some third party library header>
...

#include <some internal header files>
#include <some internal header files>
...

и ничего больше . Я не совсем понимаю, как используются эти файлы или почему они структурированы таким образом, поскольку я думал, что заголовочные файлы содержат объявления классов, которые в основном состоят из интерфейса, который другой код использует для доступа к объектному файлу. Я думаю, что программист, возможно, хотел «упаковать» все заголовки в один большой заголовок и просто включить это. Это хорошая идея или лучше избегать этих заголовков «include only»?

1 Ответ

1 голос
/ 02 июля 2019

Идея заключается в предварительно скомпилированных заголовках .Вместо того, чтобы включать все заголовки во все модули компиляции, включается только один файл, который после первого анализа кэшируется.Затем компиляция остальных модулей для текущей или следующей сборки происходит быстрее.

Отсюда большие файлы PCH, которые вы видите, например, в Visual Studio.Типичная настройка - это stdafx.h, который включен во все модули компиляции, где первый генерирует предварительно скомпилированный заголовок, остальные используют его повторно.

...