Эта директива служит для установки параметров, специфичных для компилятора. Часто выполняемые с ее помощью установки можно выполнить и другим способом, например, в диалоге Project Options или в командной строке компилятора. Директива имеет вид
#pragma директива
Что такое директива, описывает следующая таблица.
Таблица 4.3. Директивы “pragma компилятора C++Builder
Директива |
Описание |
||
alignment |
Выдает сообщение о текущем выравнивании данных и размере enum-типов. |
||
anon struct |
Синтаксис: #pragma anon struct on ^pragma anon struct off Разрешает или запрещает использование вложенных анонимных структур в классах. |
||
argsused |
Подавляет выдачу сообщения о неиспользуемых параметрах для функции, непосредственно следующей за директивой. |
||
checkoption |
Синтаксис: #pragma checkoption строкаопций Проверяет, установлены ли опции, указанные в директиве. Если нет, выдается сообщение об ошибке. |
||
codeseg |
Синтаксис: #pragma codeseg [имясегмента] ["класс"] [группа] Позволяет указать имя или класс сегмента либо группу, где будут размещаться функции. Если все опции директивы опущены, используется сегмент кода по умолчанию. |
||
comment |
Записывает строку-комментарий в объектный или исполняемый файл. Синтаксис: ftpragma comment (тип, "строка") |
||
exit |
Позволяет указать функцию (функции), которая будет вызываться непосредственно перед завершением программы. Синтаксис директивы: #pragma exit имя функции [приоритет] Необязательный приоритет в диапазоне 64-255 определяет порядок вызова подобных функций (чем он выше, т. е. меньше, тем позже вызывается функция). |
||
hdrfile |
Специфицирует имя файла прекомпилируемых заголовков. |
||
hdrstop |
Запрещает включать дальнейшую информацию в файл прекомпилируемых заголовков. |
||
inline |
Говорит компилятору, что файл должен компилироваться через ассемблер (компилятор генерирует код ассемблера, затем запускает TASM, который выдает конечный obj-файл). |
||
intrinsic |
Синтаксис: #pragma intrinsic [-]имяфункции Управляет inline-расширением внутренних (intrinsic) функций (к ним относятся в основном функции исполнительной библиотеки для работы со строками, такие, как strncpy, memset и другие). |
||
link |
Синтаксис: #pragma link "имяфайла" Заставляет компоновщик подключить к исполняемому модулю указанный объектный файл. |
||
message |
Синтаксис: #pragma message ("текст"...) ttpragma message текст Выдает сообщение при компиляции. |
||
nopushoptwarn |
Подавляет предупреждение о том, что опции компилятора, имевшиеся в начале обработки текущего "файла, не были восстановлены к концу его компиляции (см. ниже о #pragma option). |
||
obsolete |
Синтаксис: #pragma obsolete имяфункции Выдает предупреждение о том, что данная функция является устаревшей (если имеются обращения к ней). Директивой можно информировать других программистов, что вы усовершенствовали свой код и предусмотрели новую функцию для данной задачи. |
||
option |
Синтаксис: #pragma option опции #pragma option push опции #pragma option pop Директива позволяет указать необходимые опции командной строки прямо в коде программы. Форма option push сначала сохраняет текущие установки в стеке компилятора; option pop, соответственно, выталкивает из стека последний набор опций. |
||
pack |
Синтаксис: #pragma pack(n) #pragma pack (push, n) #pragma pack(pop) Задает выравнивание данных в памяти и эквивалентна ftpragma option -an. |
||
package |
Синтаксис: #pragma package(smart init) #pragma package(smart init, weak) Управляет порядком инициализации модулей в пакетах C++Builder; по умолчанию включается в начало каждого автоматически создаваемого модуля. |
||
resource |
Синтаксис: tpragma resource "*.dfm" Текущий файл помечается как модуль формы; в текущем каталоге должны присутствовать соответствующий dfrn-файл и заголовок. Всеми этими файлами IDE управляет автоматически. |
||
startup |
Аналогична pragma exit; позволяет специфицировать функции, исполняющиеся при запуске программы (перед вызовом main). Функции с более высоким приоритетом вызываются раньше. |
||
warn |
Позволяет управлять выдачей предупреждений. Синтаксис: #pragma warn +|-\.www Www может быть трехбуквенным или четырехзначным цифровым идентификатором конкретного сообщения. Предшествующий ему плюс разрешает выдачу предупреждения, минус запрещает, точка — восстанавливает исходное состояние. |
О различных ключах командной строки (и эквивалентных установках диалога Project Options) мы расскажем в разделе об особенностях компилятора.