/GF (消除重複字串)
更新:2007 年 11 月
可讓編譯器於執行時在程式影像中和記憶體中為同一字串建立單一複本,產生較小的程式,以及稱為字串共用 (String Pooling) 的最佳化。
/GF
備註
/GF 共用字串為唯讀。
如果使用 /GF,作業系統不會交換記憶體的字串部分,並且可以從影像檔將字串讀回來。如果嘗試在 /GF 之下修改字串,就會發生應用程式錯誤。
字串共用可以讓原來要指向多個緩衝區的多重指標成為指向單一緩衝區的多重指標。在下列程式碼中,s 和 t 是以相同的字串初始化的。字串共用使它們指向相同的記憶體:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
注意事項: |
---|
用於「編輯後繼續」的 /Z7、/Zi、/ZI (偵錯資訊格式) 選項會自動地設定 /GF 選項。 |
使用 /O1、/O2 (最小大小、最快速度) 或 /O2 時,/GF 會啟用。
若要在 Visual Studio 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。如需詳細資訊,請參閱 HOW TO:開啟專案屬性頁。
按一下 [C/C++] 資料夾。
按一下 [程式碼產生] 屬性頁。
修改 [啟用字串共用] (/GF) 屬性。
若要以程式方式設定這個編譯器選項
- 請參閱 StringPooling。