hdrstop
pragma
讓您更充分掌控先行編譯檔案名,以及儲存編譯狀態的位置。
語法
#pragma hdrstop
[ ( 「 filename 」 ) ]
備註
檔案名 是要使用或建立的先行編譯標頭檔的名稱(視指定 /Yu
或 /Yc
指定而定)。 如果 filename 不包含路徑規格,則會假設先行編譯標頭檔位於與原始程式檔相同的目錄中。
如果 C 或 C++ 檔案在編譯 /Yc
時包含 hdrstop
pragma ,編譯器會將編譯的狀態儲存到 的位置 pragma 。 未儲存任何後續 pragma 程式碼的編譯狀態。
使用 檔案名 來命名儲存編譯狀態的先行編譯標頭檔。 和 filename 之間的 hdrstop
空格是選擇性的。 中指定的 hdrstop
pragma 檔案名是字串,而且受限於任何 C 或 C++ 字串的條件約束。 特別是,您必須以引號括住它,並使用逸出字元 (反斜線, \
) 來指定目錄名稱。 例如:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
先行編譯標頭檔的名稱是根據下列規則來決定的,依照優先順序列出:
編譯器選項的
/Fp
引數要 的 filename 引數
#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 )
下列規則會控管可以放置 的位置 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 。 不過,請考慮使用手動先行編譯選項 和 /Yu
, /Yc
hdrstop
pragma 讓您可以先行編譯整個原始程式檔,甚至是內嵌程式碼。 Microsoft 編譯器不會限制您只先行編譯資料宣告。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應