Предварительно скомпилированные заголовки

Что такое предварительно скомпилированные заголовки? когда они используются?


person lital maatuk    schedule 10.02.2011    source источник


Ответы (1)


Предварительно скомпилированные заголовки - это оптимизация, используемая в процессе компиляции.

По сути, если вы компилируете что-то вроде stdio.h с точно такими же определениями и средой, вы можете с уверенностью предположить, что результат будет каждый раз одинаковым.

Таким образом, компилятор запоминает «скомпилированную» версию этого заголовка, поэтому ему не нужно делать это снова.

На самом деле, это, как правило, исходная группа заголовков, которая имеет значение, поэтому, если каждый из ваших исходных файлов начинается с:

#define XYZZY 42
#include <stdio.h>
#include <stdlib.h>

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

Впервые я увидел эту функцию в Windows с ее массивным windows.h файлом заголовка, и, поверьте мне, это сильно повлияло на общее время сборки.

person paxdiablo    schedule 10.02.2011