/GF (eliminar cadeias de caracteres duplicadas)
Permite que o compilador crie uma única cópia de cadeias de caracteres idênticas na imagem do programa e na memória durante a execução. Essa é uma otimização chamada pool de cadeias de caracteres que pode criar programas menores.
Sintaxe
/GF
Comentários
Se você usar /GF, o sistema operacional não trocará a parte da cadeia de caracteres da memória e poderá ler as cadeias de caracteres de volta do arquivo de imagem.
A /GF agrupa cadeias de caracteres como somente leitura. Se você tentar modificar cadeias de caracteres e estiver usando a opção /GF, ocorrerá um erro de aplicativo.
O pool de cadeias de caracteres permite que o que se pretendia com vários ponteiros para vários buffers tornando-se vários ponteiros para um único buffer. No código a seguir s
e t
são inicializados com a mesma cadeia de caracteres. O pool de cadeias de caracteres faz com que apontem para a mesma memória:
char *s = "This is a character buffer";
char *t = "This is a character buffer";
Observação
A opção /ZI, usada para Editar e Continuar, define automaticamente a opção /GF.
Observação
A opção do compilador /GF cria uma seção endereçável para cada cadeia de caracteres exclusiva. E, por padrão, um arquivo-objeto pode conter até 65.536 seções endereçáveis. Se o programa contiver mais de 65.536 cadeias de caracteres, use a opção do compilador /bigobj para criar mais seções.
A /GF está em vigor quando /O1 ou /O2 é usada.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.
Modifique a propriedade Habilitar Pooling de Cadeias de Caracteres.
Para definir essa opção do compilador via programação
- Consulte StringPooling.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC