>hdrstop
讓您先行編譯的檔案名稱和位置儲存編譯狀態的位置上的其他控制。
#pragma hdrstop [( "filename" )]
備註
檔名 的使用,或建立先行編譯的標頭檔名稱 (根據 /Yu 或 /Yc 所指定)。 如果檔名不包含指定的路徑,先行編譯標頭檔會被假設為與原始程式檔相同的目錄。
如果 c 或 C++ 檔案包含 >hdrstop pragma 使用 /Yc 編譯時,編譯器儲存編譯狀態的進位到 pragma 的位置。 下列 pragma 任何程式碼的已編譯的狀態不會儲存。
使用檔名來命名先行編譯標頭檔,用來儲存已編譯的狀態。 之間的空白 >hdrstop 和檔名是選擇性的。 在指定的檔名 >hdrstop pragma 是一個字串,因此任何 c 或 C++ 字串的限制式。 特別是,您必須以引號括住它,並使用逸出字元 (反斜線) 指定目錄名稱。 例如:
#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 )
下列規則可控制 where >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 可讓您先行編譯整個原始程式檔,甚至是內嵌程式碼。 Microsoft 編譯器不會限制您以先行編譯只宣告的資料。