/GF (Eliminowanie ciągów zduplikowanych)
Umożliwia kompilatorowi utworzenie pojedynczej kopii identycznych ciągów na obrazie programu i w pamięci podczas wykonywania. Jest to optymalizacja nazywana buforowaniem ciągów, która może tworzyć mniejsze programy.
Składnia
/GF
Uwagi
Jeśli używasz /GF, system operacyjny nie zamienia części ciągu pamięci i może odczytać ciągi z powrotem z pliku obrazu.
/GF ciągi pul jako tylko do odczytu. Jeśli spróbujesz zmodyfikować ciągi w / GF, wystąpi błąd aplikacji.
Buforowanie ciągów umożliwia użycie wielu wskaźników do wielu w postaci wielu wskaźników do pojedynczego buforu. W poniższym kodzie s
i t
są inicjowane przy użyciu tego samego ciągu. Buforowanie ciągów powoduje, że wskazują one tę samą pamięć:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Uwaga
Opcja /ZI, używana do edycji i kontynuowania, automatycznie ustawia /GF opcji.
Uwaga
Opcja kompilatora /GF tworzy sekcję adresową dla każdego unikatowego ciągu. Domyślnie plik obiektu może zawierać maksymalnie 65 536 sekcji z adresami. Jeśli program zawiera więcej niż 65 536 ciągów, użyj opcji kompilatora /bigobj , aby utworzyć więcej sekcji.
/GF jest w mocy, gdy /O1 lub /O2 jest używany.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Code Generation.
Zmodyfikuj właściwość Włącz buforowanie ciągów .
Aby programowo ustawić tę opcję kompilatora
- Zobacz: StringPooling.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC