В этом разделе мы рассмотрим
установки диалога Project Options, имеющие отношение к программам на С. В основном
это будет касаться страниц Compiler и Advanced
Compiler этого диалога. Он открывается выбором Project | Options в главном меню.
Страница
Compiler
Эта страница диалога показана
на рис. 4.1.
В нижней части страницы
вы видите две кнопки: Full debug и Release. Первая из них выполняет все установки
параметров, позволяющие в полной мере использовать возможности отладчика C++Builder;
вторая запрещает генерацию какой-либо отладочной информации и оптимизирует код
для получения максимальной скорости выполнения. При изучении языка вам лучше всего
воспользоваться кнопкой Full debug и не задумываться больше об установках, влияющих
на отладку и эффективность кода.
Группа радиокнопок Code optimization
позволяет полностью отключить оптимизацию, задать оптимизацию по скорости или
выбрать отдельные опции оптимизации, включив радиокнопку Selected и нажав Optimizations.
При этом откроется окно диалога со списком опций, в котором, кстати, показаны
эквивалентные ключи командной строки, управляющие оптимизацией.
Группа Warnings
управляет выдачей предупреждений. Включив соответствующую радиокнопку, можно запретить
все, разрешить все предупреждения или управлять выдачей отдельных предупреждений.
Диалог Compiler Warnings также показывает ключи командной строки. Я бы советовал
вам разрешить выдачу всех предупреждений. Грамотно написанный код должен транслироваться
не только без ошибок, но и без всяких замечаний со стороны компилятора.
Раздел Pre-compiled headers
управляет прекомпиляцией заголовочных файлов.
Объем
кода заголовочных файлов, включаемых в модуль исходный модуль, может достигать
тысяч, если не десятков и сотен тысяч строк. К тому же часто эти заголовочные
файлы включаются в каждый модуль проекта. Поскольку при разработке программы заголовочные
файлы приходится изменять сравнительно редко
(а стандартные заголовки вообще не меняются), имеет смысл компилировать все необходимые
заголовки один раз и создать файл специального вида, который будет содержать всю
необходимую “заголовочную” информацию в форме, обеспечивающей максимально быстрый
доступ к ней. Компилятор C++Builder может генерировать такие файлы (с расширением
.csm), •во много раз ускоряющие повторное построение проектов. Недостатком их
можно считать разве что весьма большой размер — типичный файл прекомпилируемых
заголовков может занимать от пяти до десяти мегабайт.
Кнопка
None запрещает использование прекомпилируемых заголовков. Кнопка Use pre-compiled
headers разрешает генерацию и использование файла компилированных символов (это
другое название файлов .csm). Кнопка Cache pre-compiled headers заставляет компилятор
кэшировать прекомпилируемые заголовки, т. е. хранить их информацию в памяти, а
не загружать csm-файл заново, когда в этом возникает необходимость. Это полезно,
когда вы транслируете сразу несколько файлов, но может и замедлять компиляцию,
если память системы невелика. В поле редактирования
File name задается имя файла компилированных символов. В поле Stop after можно
ввести имя файла, после компиляции которого генерация прекомпилируемых заголовков
прекращается. Это должен быть файл, включаемый в исходный модуль непосредственно,
а не в другом заголовке (как, например, windows.h включает массу других заголовочных
файлов). • Раздел Debugging управляет
включением отладочной информации в объектные файлы, создаваемые компилятором (флажки
Debug information и Line numbers). Кроме того, флажок Disable inline expansions
позволяет запретить расширения inline-функций, т. е. непосредственную вставку
кода функции на месте ее вызова. Это упрощает отладку.
Если
вы хотите отлаживать программу, то должны убедиться, что флажок Create debug information
на странице Linker также установлен.
Раздел
Compiling управляет общими аспектами компиляции.
При помеченном флажке Merge duplicate strings компилятор сопоставляет встречающиеся
литеральные строки и, если две или более строк совпадают, генерирует только одну
строку. Это делает программу несколько более компактной, но может приводить к
ошибкам, если вы модифицируете одну из строк. При
установке флажка Stack frames компилятор генерирует стандартные кадры стека
функций, т. е. стандартный код входа и возврата. Этот флажок должен быть установлен,
если вы хотите отлаживать 'функции модуля. Если флажок сброшен, то для функций,
не имеющих параметров и локальных переменных, будет генерироваться нестандартный,
сокращенный код. При установке Treat enum
types as ints компилятор отводит под перечисления 4-байтовое слово. Если флажок
сброшен, отводится минимальное целое (1 байт, если значения перечислимого типа
лежат в диапазоне 0-255 или -128-127). Show general
messages разрешает выдачу общих сообщений компилятора (не являющихся предупреждениями
или сообщениями об ошибках). Флажок Extended
error information разрешает выдачу расширенных сообщений об ошибках компилятора
(вплоть до контекста синтаксического анализатора и т. п. — простому человеку ни
к чему).
Известно, что информационные системы, основанные на архитектуре клиент/сервер,
могут обладать существенными преимуществами перед информационными системами, базирующимися
на сетевых версиях настольных СУБД, такими, как существенно меньший сетевой трафик,
меньшее время обработки запросов, меньшая ресурсоемкость клиентских приложений
и меньшие трудозатраты при их разработке.