/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.
Измените свойство Enable String Pooling .
Установка данного параметра компилятора программным способом
- См. раздел StringPooling.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC