hdrstop pragma

Обеспечивает больше контроля над именами файлов предварительной компиляции и расположением, в котором сохраняется состояние компиляции.

Синтаксис

#pragma hdrstop [ ( "имя_файла" ) ]

Замечания

Имя файла — это имя предварительно скомпилированного файла заголовка для использования или создания (в зависимости от того, задано /Yu или /Yc указано). Если имя файла не содержит спецификацию пути, предполагается, что предварительно скомпилированные файл заголовка будут находиться в том же каталоге, что и исходный файл.

Если файл C или C++ содержит hdrstoppragma файл, скомпилированный с /Ycпомощью, компилятор сохраняет состояние компиляции до расположения pragma. Скомпилированное состояние любого кода, следующего за pragma ней, не сохраняется.

Используйте имя файла для имени предварительно скомпилированного файла заголовка, в котором сохраняется скомпилированное состояние. Пространство между hdrstop файлом и именем файла является необязательным. Имя файла, указанное hdrstoppragma в строке, и подлежит ограничениям любой строки C или C++. В частности, необходимо заключить его в кавычки и использовать escape-символ (обратная косая черта, \) для указания имен каталогов. Например:

#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )

Имя предкомпилированного файла заголовка определяется в соответствии со следующим правилам в порядке приоритета.

  1. Аргумент параметра компилятора /Fp

  2. Аргумент имени файла #pragma hdrstop

  3. Базовое имя исходного файла с расширением PCH

Если ни один из /Yc параметров или /Yuhdrstoppragma имя файла не указан, базовое имя исходного файла используется в качестве базового имени предварительно скомпилированного файла заголовка.

Команды предварительной обработки также можно использовать для выполнения замены макроса.

#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )

Следующие правила управляют размещением:hdrstoppragma

  • Она должна находится за пределами любых объявлений или определений данных или функций.

  • Она должна задаваться в файле исходного кода, а не заголовка.

Пример

#include <windows.h>                 // Include several files
#include "myhdr.h"

__inline Disp( char *szToDisplay )   // Define an inline function
{
    // ...                           // Some code to display string
}
#pragma hdrstop

В этом примере hdrstoppragma отображается после включения двух файлов и определена встроенная функция. Сначала это расположение может показаться нечетным размещением pragmaдля . Однако учитывайте, что использование параметров предварительной компиляции вручную и /Yc/Yuс hdrstoppragma помощью этого средства позволяет предварительно компилировать все исходные файлы или даже встроенный код. Компилятор Майкрософт не ограничивает предварительное компиляцию только объявлений данных.

См. также

Директивы Pragma и __pragma_Pragma ключевое слово