/GF (Doppelte Zeichenfolgen beseitigen)

Ermöglicht dem Compiler das Erstellen einer einzelnen Kopie identischer Zeichenfolgen im Programmimage und im Arbeitsspeicher während der Ausführung. Dies ist eine Optimierung namens Zeichenfolgenpooling , die kleinere Programme erstellen kann.

Syntax

/GF

Hinweise

Wenn Sie /GF verwenden, tauscht das Betriebssystem den Zeichenfolgenteil des Arbeitsspeichers nicht aus und kann die Zeichenfolgen aus der Bilddatei zurücklesen.

/GF pools strings as read-only. Wenn Sie versuchen, Zeichenfolgen unter /GF zu ändern, tritt ein Anwendungsfehler auf.

Zeichenfolgenpooling ermöglicht, was als mehrere Zeiger auf mehrere Puffer vorgesehen war, um mehrere Zeiger auf einen einzelnen Puffer zu sein. Im folgenden Code s und t mit derselben Zeichenfolge initialisiert. Zeichenfolgenpooling bewirkt, dass sie auf denselben Speicher verweisen:

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

Hinweis

Die Option "/ZI ", die für "Bearbeiten" und "Weiter" verwendet wird, legt automatisch die Option /GF fest.

Hinweis

Die /GF-Compileroption erstellt einen adressierbaren Abschnitt für jede eindeutige Zeichenfolge. Und standardmäßig kann eine Objektdatei bis zu 65.536 adressierbare Abschnitte enthalten. Wenn Ihr Programm mehr als 65.536 Zeichenfolgen enthält, verwenden Sie die Compileroption "/bigobj ", um weitere Abschnitte zu erstellen.

/GF ist wirksam, wenn /O1 oder /O2 verwendet wird.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Codegenerierung aus.

  3. Ändern Sie die Eigenschaft "Zeichenfolgenpooling aktivieren".

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile