C++ Программирование в среде С++ Builder 5

Директива # pragma


Эта директива служит для установки параметров, специфичных для компилятора. Часто выполняемые с ее помощью установки можно выполнить и другим способом, например, в диалоге 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) мы расскажем в разделе об особенностях компилятора.



Содержание раздела