hdrstop
pragma
Обеспечивает больше контроля над именами файлов предварительной компиляции и расположением, в котором сохраняется состояние компиляции.
Синтаксис
#pragma hdrstop
[ ( "имя_файла" ) ]
Замечания
Имя файла — это имя предварительно скомпилированного файла заголовка для использования или создания (в зависимости от того, задано /Yu
или /Yc
указано). Если имя файла не содержит спецификацию пути, предполагается, что предварительно скомпилированные файл заголовка будут находиться в том же каталоге, что и исходный файл.
Если файл C или C++ содержит hdrstop
pragma файл, скомпилированный с /Yc
помощью, компилятор сохраняет состояние компиляции до расположения pragma. Скомпилированное состояние любого кода, следующего за pragma ней, не сохраняется.
Используйте имя файла для имени предварительно скомпилированного файла заголовка, в котором сохраняется скомпилированное состояние. Пространство между hdrstop
файлом и именем файла является необязательным. Имя файла, указанное hdrstop
pragma в строке, и подлежит ограничениям любой строки C или C++. В частности, необходимо заключить его в кавычки и использовать escape-символ (обратная косая черта, \
) для указания имен каталогов. Например:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Имя предкомпилированного файла заголовка определяется в соответствии со следующим правилам в порядке приоритета.
Аргумент параметра компилятора
/Fp
Аргумент имени файла
#pragma hdrstop
Базовое имя исходного файла с расширением PCH
Если ни один из /Yc
параметров или /Yu
hdrstop
pragma имя файла не указан, базовое имя исходного файла используется в качестве базового имени предварительно скомпилированного файла заголовка.
Команды предварительной обработки также можно использовать для выполнения замены макроса.
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Следующие правила управляют размещением:hdrstop
pragma
Она должна находится за пределами любых объявлений или определений данных или функций.
Она должна задаваться в файле исходного кода, а не заголовка.
Пример
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
В этом примере hdrstop
pragma отображается после включения двух файлов и определена встроенная функция. Сначала это расположение может показаться нечетным размещением pragmaдля . Однако учитывайте, что использование параметров предварительной компиляции вручную и /Yc
/Yu
с hdrstop
pragma помощью этого средства позволяет предварительно компилировать все исходные файлы или даже встроенный код. Компилятор Майкрософт не ограничивает предварительное компиляцию только объявлений данных.