Поделиться через


/GF (Исключение повторяющихся строк)

Позволяет компилятору создать одну копию идентичных строк в образе программы и в памяти во время выполнения. Это оптимизация, называемая пулом строк, которая может создавать небольшие программы.

Синтаксис

/GF

Замечания

Если вы используете /GF, операционная система не переключает строковую часть памяти и может считывать строки обратно из файла образа.

Строки пулов /GF доступны только для чтения. При попытке изменить строки в / GF возникает ошибка приложения.

Объединение строк позволяет использовать несколько указателей на несколько буферов, которые должны быть несколькими указателями на один буфер. В следующем коде s инициализированы t с той же строкой. Объединение строк приводит к тому, что они указывают на ту же память:

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

Примечание.

Параметр /ZI , используемый для редактирования и продолжения, автоматически задает параметр /GF .

Примечание.

Параметр компилятора /GF создает адресный раздел для каждой уникальной строки. По умолчанию файл объекта может содержать до 65 536 адресных разделов. Если программа содержит более 65 536 строк, используйте параметр компилятора /bigobj для создания дополнительных разделов.

/GF действует при использовании /O1 или /O2 .

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.

  3. Измените свойство Enable String Pooling .

Установка данного параметра компилятора программным способом

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC