/GF (Doppelte Zeichenfolgen beseitigen)
Aktualisiert: November 2007
Ermöglicht dem Compiler die Erstellung einer einzelnen Kopie identischer Zeichenfolgen während der Ausführung im Programmabbild und im Speicher. Dadurch werden die Programme kleiner. Diese Optimierung wird als Stringpooling bezeichnet.
/GF
Hinweise
/GF aktiviert das schreibgeschützte Stringpooling.
Wenn Sie /GF verwenden, vertauscht das Betriebssystem den Zeichenfolgenteil des Speichers nicht und kann die Zeichenfolgen erneut aus der Abbilddatei auslesen. 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";
Hinweis: |
---|
Die für Bearbeiten und Fortfahren verwendete /Z7, /Zi, /ZI (Debuginformationsformat)-Option setzt automatisch die /GF-Option. |
/GF ist gültig, wenn /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren) oder /O2 verwendet wird.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.
Klicken Sie auf den Ordner C/C++.
Klicken Sie auf die Eigenschaftenseite Codegenerierung.
Ändern Sie die Eigenschaft Stringpooling aktivieren.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe StringPooling.