分享方式:


/GF (消除重複字串)

可讓編譯程式在執行期間,在程式映像和記憶體中建立相同字串的單一複本。 這是稱為 字串共用 的優化,可建立較小的程式。

語法

/GF

備註

如果您使用 /GF,操作系統不會交換記憶體的字串部分,而且可以從映像檔讀取字串。

/GF 集區字串為唯讀。 如果您嘗試修改 /GF 下的字串,就會發生應用程式錯誤。

字串共用可讓多個緩衝區的多個指標成為單一緩衝區的多個指標。 在下列程式代碼中, s 並使用 t 相同的字串初始化。 字串共享會導致它們指向相同的記憶體:

char *s = "This is a character buffer";
char *t = "This is a character buffer";

注意

用於 [編輯後繼續] 的 /ZI 選項會自動設定 /GF 選項。

注意

/GF 編譯程式選項會為每個唯一字串建立可尋址的區段。 根據預設,對象檔最多可包含 65,536 個可尋址區段。 如果您的程式包含超過 65,536 個字串,請使用 /bigobj 編譯程式選項來建立更多區段。

使用 /O1/O2 時,/GF 會生效。

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性>C/C++>Code 產生] 屬性頁。

  3. 變更 [ 啟用字串分享 ] 屬性。

若要以程式方式設定這個編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法