hdrstop
pragma
Fornece controle adicional sobre nomes de arquivo de pré-compilação e sobre o local em que o estado da compilação é salvo.
Sintaxe
#pragma hdrstop
[ ( "filename" ) ]
Comentários
O filename é o nome do arquivo de cabeçalho pré-compilado a ser usado ou criado (dependendo se /Yu
ou /Yc
é especificado). Se filename não contém uma especificação de caminho, pressupõe-se que o arquivo de cabeçalho pré-compilado esteja no mesmo diretório do arquivo de origem.
Se um arquivo de C ou C++ contém um hdrstop
pragma quando compilado com /Yc
, o compilador salva o estado da compilação até o pragma. O estado compilado de todo o código que se segue ao pragma não é salvo.
Use filename para nomear o arquivo de cabeçalho pré-compilado no qual o estado compilado é salvo. Um espaço entre hdrstop
e filename é opcional. O nome de arquivo especificado no hdrstop
pragma é uma cadeia de caracteres e, portanto, está sujeito às restrições de qualquer cadeia de caracteres de C ou C++. Em particular, você deve colocá-lo entre aspas e usar o caractere de escape (barra invertida, \
) para especificar nomes de diretório. Por exemplo:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
O nome do arquivo de cabeçalho pré-compilado é determinado de acordo com as regras a seguir, em ordem de precedência:
O argumento da opção de compilador
/Fp
O argumento filename é para
#pragma hdrstop
O nome base do arquivo de origem com a extensão PCH
Se nenhuma das opções /Yc
e /Yu
ou hdrstop
pragma especificar um nome de arquivo, o nome base do arquivo de origem será usado como o nome base do arquivo de cabeçalho pré-compilado.
Você também pode usar comandos de pré-processamento para executar a substituição de macros, da seguinte maneira:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
As seguintes regras orientam onde o hdrstop
pragma pode ser colocado:
Deve aparecer fora de qualquer declaração ou definição de dados ou de função.
Deve ser especificado no arquivo de origem, e não em um arquivo de cabeçalho.
Exemplo
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
Nesse exemplo, o hdrstop
pragma aparece depois que dois arquivos foram incluídos e uma função embutida foi definida. Inicialmente, isso pode parecer um posicionamento estranho para o pragma. Porém, considere que, usando as opções de pré-compilação manual,/Yc
, /Yu
e o hdrstop
pragma, você pode pré-compilar arquivos de origem inteiros, incluindo até o código embutido. Com o compilador da Microsoft, você não está limitado a pré-compilar somente declarações de dados.