754_____________________________________________Глава 13

• Induction variables (индуцирование переменных) — эквивалент опции коман-
дной строки -Ov. В результате оптимизируются фрагменты кода, связанные с
циклами..

• Optimize common subexpressions (оптимизация общих фрагментов выраже-
ний) — эквивалент опции командной строки -Og. Эта опция удаляет из кода
каждой функции повторяющиеся в ней выражения, сохраняя их значения и
исключая таким образом повторяющиеся вычисления. Это сокращает время
вычислений, но редко сокращает объем выполняемого файла.
Индикатор Selected и нажатие кнопки Optimization вызывают диалоговое окно
оптимизации, в котором вы можете раздельно задать или отключить перечислен-
ные выше опции. Кроме того в этом окне вы можете установить опцию Pentium
scheduling — эквивалент опции командной строки -OS, позволяющую учесть при
оптимизации особенности компьютеров Pentium. Кнопка Defaults в этом окне вос-
станавливает состояние всех опций оптимизации по умолчанию.

Группа опций Warnings задает типы предупреждений компилятора, которые
будут им выдаваться. Опция All (установлена по умолчанию) обеспечивает выдачу
всех возникающих при компиляции предупреждений. Опция None запрещает вы-
дачу любых предупреждений. Опция Selected и нажатие кнопки Warnings вызыва-
ют диалоговое окно, в котором вам предлагается длинный список типов преду-
преждений, любой из которых вы можете включить или выключить.

Группа опций Debugging задает генерацию различного вида отладочной инфор-
мации в процессе компиляции. Опция Debug information добавляет в объектные
файлы .obj отладочную информацию. Опция Line number добавляет в объектные
файлы .obj информацию о номерах строк исходного файла. Опция Disable inline ex-
pansions запрещает компилятору развертывать встраиваемые inline функции. При
этом встраиваемые функции генерируются и вызываются как и все иные. Это об-
легчает отладку приложения.

По умолчанию все опции группы Debugging включены. Впрочем, они будут
обеспечивать встраивание отладки в выполняемый модуль только в случае, если
одновременно на странице Linker включена опция Include Debug Information. Если
ваши объектные файлы .obj получаются очень большими, вы можете уменьшить
их размер, отключая те или иные опции отладки. При завершении работы с проек-
том эти опции безусловно надо выключить и оттранслировать проект заново.

Опции группы Pre-com piled headers определяют предварительную компиляцию
заголовочных файлов. Эта возможность компилятора, подробнее рассмотренная в
главе 2 в разделе 2.5.6, может существенно ускорять повторную компиляцию при-
ложения за счет того, что сохраняет в файле на диске таблицу символов использо-
ванных заголовочных файлов. Но это может быть связано с большими объемами
файлов на диске. Опция None запрещает генерацию файла предварительной ком-
пиляции заголовочных файлов. Опция Use pre-compiled headers обеспечивает генер-
цию и использование этого файла (его имя по умолчанию -...\Iib\vcl.csm). Опция
Cache pre-compiled headers (включена по умолчанию) обеспечивает кэширование
файла предварительной компиляции. Это полезно, если предварительно компили-
руется более одного заголовочного файла. Окно File Name позволяет вам изменить
имя по умолчанию файла предварительной компиляции. Это имя можно задать
или с полным путем, или с путем относительно каталога C++Builder, обозначаемо-
го макросом $(ВСВ) (см. рис. 13.4). Окно Stop After прерывает создание файла
предварительной компиляции после того, как скомпилирован указанный в этом
окне файл. Это можно использовать, чтобы сократить размер файла предваритель-
ной компиляции.

Группа индикаторов Compiling устанавливает основные опции компилятора,
которые отражаются на компиляции большинства приложений C++Builder. Оп-
ция Merge duplicate strings дает компилятору возможность объединять две строки
символов, следующих друг за другом, в одну строку. Это может несколько сокра-