hdrstop
pragma
Poskytuje větší kontrolu nad názvy souborů předkompilacemi a umístěním, ve kterém je uložen stav kompilace.
Syntaxe
#pragma hdrstop
[ ( "název_souboru" ) ]
Poznámky
Název souboru je název předkompilovaného souboru hlaviček, který se má použít nebo vytvořit (v závislosti na tom, jestli /Yu
je zadaný)./Yc
Pokud název souboru neobsahuje specifikaci cesty, předpokládá se, že předkompilovaný hlavičkový soubor je ve stejném adresáři jako zdrojový soubor.
Pokud soubor C nebo C++ obsahuje hdrstop
pragma při kompilaci /Yc
, kompilátor uloží stav kompilace až do umístění pragma. Zkompilovaný stav libovolného kódu, který následuje za tímto kódem pragma , se neuloží.
Název souboru použijte k pojmenování předkompilovaného hlavičkového souboru, ve kterém je uložen kompilovaný stav. Mezera mezi hdrstop
a názvem souboru je nepovinná. Název souboru zadaný v řetězci hdrstop
pragma a podléhá omezením libovolného řetězce jazyka C nebo C++. Konkrétně ho musíte uzavřít do uvozovek a pomocí řídicího znaku (zpětné lomítko) \
zadat názvy adresářů. Příklad:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Název předkompilovaného souboru hlaviček se určuje podle následujících pravidel, v pořadí podle priority:
Argument možnosti kompilátoru
/Fp
Argument názvu souboru
#pragma hdrstop
Základní název zdrojového souboru s příponou PCH
Pokud žádný z /Yc
možností hdrstop
pragma a /Yu
neurčí název souboru, použije se základní název zdrojového souboru jako základní název předkompilovaného souboru hlaviček.
Lze také použít příkazy předzpracování pro provedení nahrazení makra následovně:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Následující pravidla určují, kde hdrstop
pragma lze umístit:
Musí být uvedena mimo jakékoliv deklarace dat, funkce nebo definice.
Musí být zadána ve zdrojovém souboru, nikoli v souboru hlaviček.
Příklad
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
V tomto příkladu hdrstop
pragma se zobrazí po zahrnutí dvou souborů a byla definována vložená funkce. Toto umístění může zpočátku vypadat jako liché umístění pro pragma. Zvažte však, že použití možností /Yc
ručního předkompilace a /Yu
, s hdrstop
pragma tím, že vám umožní předkompilovat celé zdrojové soubory, nebo dokonce vložený kód. Kompilátor Microsoftu vás neomezuje na předkompilování pouze deklarací dat.