Freigeben über


/GF (Doppelte Zeichenfolgen beseitigen)

Ermöglicht es dem Compiler, eine einzige Kopie identischer Zeichenfolgen im Programmabbild und im Arbeitsspeicher während der Ausführung zu erstellen.Dies ist eine Optimierung namens Stringpooling, die kleinere Programme erstellen kann.

/GF

Hinweise

Wenn Sie /GF verwenden, vertauscht das Betriebssystem den Zeichenfolgenteil des Speichers nicht und kann die Zeichenfolgen erneut aus der Abbilddatei auslesen.

/GF aktiviert das schreibgeschützte Stringpooling.Beim Versuch, Zeichenfolgen unter /GF zu ändern, tritt ein Anwendungsfehler auf.

Stringpooling macht aus den ursprünglich mehreren Zeigern auf mehrere Puffer mehrere Zeiger auf einen einzigen Puffer.Im folgenden Codebeispiel werden s und t mit derselben Zeichenfolge initialisiert.Aufgrund des Stringpoolings zeigen sie auf denselben Speicherbereich:

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

Die zum Bearbeiten und Fortsetzen des Vorgangs verwendete /ZI-Option legt automatisch die /GF-Option fest.

HinweisHinweis

Die /GF-Compileroption erstellt einen adressierbaren Abschnitt für jede eindeutige Zeichenfolge.In der Standardeinstellung kann eine Objektdatei außerdem bis zu 65.536 adressierbare Abschnitte enthalten.Wenn das Programm mehr als 65.536 Zeichenfolgen enthält, verwenden Sie die /bigobj--Compileroption, um mehr Abschnitte zu erstellen.

/GF ist gültig, 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.Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Codegenerierung.

  4. Ändern Sie die Eigenschaft Stringpooling aktivieren.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

Referenz

Compileroptionen

Festlegen von Compileroptionen