/GF (Supprimer les doublons)
Permet au compilateur de créer une copie unique de chaînes identiques dans l’image du programme et en mémoire pendant l’exécution. Il s’agit d’une optimisation appelée regroupement de chaînes qui peut créer des programmes plus petits.
Syntaxe
/GF
Notes
Si vous utilisez /GF, le système d’exploitation n’échange pas la partie chaîne de mémoire et peut lire les chaînes à partir du fichier image.
/GF pools chaînes en lecture seule. Si vous essayez de modifier des chaînes sous /GF, une erreur d’application se produit.
Le regroupement de chaînes permet ce qui était prévu comme plusieurs pointeurs vers plusieurs mémoires tampons pour être plusieurs pointeurs vers une seule mémoire tampon. Dans le code suivant, s
et t
sont initialisés avec la même chaîne. Le regroupement de chaînes les amène à pointer vers la même mémoire :
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Remarque
L’option /ZI , utilisée pour Modifier et Continuer, définit automatiquement l’option /GF .
Remarque
L’option du compilateur /GF crée une section adressable pour chaque chaîne unique. Par défaut, un fichier objet peut contenir jusqu’à 65 536 sections adressables. Si votre programme contient plus de 65 536 chaînes, utilisez l’option du compilateur /bigobj pour créer d’autres sections.
/GF est en vigueur lorsque /O1 ou /O2 est utilisé.
Pour définir cette option du compilateur dans l'environnement de développement Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés De configuration>C/C++>Génération de code.
Modifiez la propriété Activer le regroupement de chaînes.
Pour définir cette option du compilateur par programmation
- Consultez StringPooling.
Voir aussi
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC