/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/C++.
Выберите страницу свойств Создание кода.
Измените свойство Включить пулы строк.
Установка данного параметра компилятора программным способом
- Дополнительные сведения см. в разделе StringPooling.