Partilhar via


/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

  1. 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.

  2. Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.

  3. Modifique a propriedade Habilitar Pooling de Cadeias de Caracteres.

Para definir essa opção do compilador via programação

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC