共用方式為


>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" )

先行編譯標頭檔的名稱會根據下列規則,以優先順序來決定:

  1. /Fp 編譯器選項引數

  2. 檔名 引數為 #pragma>hdrstop 

  3. 具有原始程式檔的主檔名。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 編譯器不會限制您以先行編譯只宣告的資料。

請參閱

參考

Pragma 指示詞 」 和 「 __Pragma 關鍵字