Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Препроцессор. Директивы препроцессора.

Читайте также:
  1. Директивы начальника

Препроцессор работает на первой фазе компиляции. Он готовит текст программы к его последующей обработке компилятором: удаляет комментарии и выполняет директивы препроцессора. Как правило, препроцессор встроен в компилятор. В Borland C++ имеется автономно работающий препроцессор cpp.exe, с помощью которого можно получить файл, обработанный препроцессором. Для управления препроцессором, т е для для задания нужных действий, используются команды (директивы) препроцессора, которые имеют следующий формат: #[имя_директивы][лексемы_препроцессора] (каждая директива помещается на отдельной строке)

Препроцессор не относится к языку программирования, его назначение состоит в обработке исходного текста программы, поэтому препроцессорные лексемы не совпадают с лексемами языка С++. Набор препроцессорных лексем включает символьную константу, имя объекта-заголовка, идентификатор, знак операции, строку символов и любой символ не являющийся пробелом, который нельзя отнести к перечисленным выше. При записи директив допускаются пробелы перед знаком #, между # и именем директивы, а также перед лексемами препроцессора, между ними и после. Директивы могут появляться в любом месте программы, они оказывают влияние от точки их появления до конца транслируемой компоненты. Строка, заканчивающаяся обратной наклонной чертой (\) соединяется со следующей. Это позволяет размещать длинные директивы препроцессора на нескольких строках.

Имя Назначение
#define #undef #include #if #ifdef #ifndef #else #elif #endif #line #error #pragma # Определение макроса Отмена определения макроса Включение текста из внешнего файла Компиляция, если выражение истинно Компиляция, если макрос определен Компиляция, если макрос не определен Альтернатива для #if, #ifdef, #ifndef Составная директива else/if Окончание группы компиляции по условию Замена новым значением номера строки или имени ткущего файла Прерывает компиляцию с выдачей сообщения об ошибке Действие определяется реализацией системы программирования Пустая директива

Директива #pragma позволяет управлять специфическими возможностями компилятора. Синтаксис директивы следующий #pragma ДИРЕКТИВА_pragma

Директивы pragma TC++ 3.0

Директива Описание
Exit   startup   Позволяет указать функцию, которая должна быть вызвана перед завершением программы. Вызываемая функция fn должна быть объявлена как void fn(void) Позволяет указать функцию, которая должна выполняться перед main. Объявление вызываемой функции fn должно иметь вид void fn(void)


Дата добавления: 2015-07-08; просмотров: 409 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления. | Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры. | Цикл do…while. Программа вычисления квадратного корня. | Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример. | Массивы как аргументы функций. Функция сортировки массива методом пузырька. | Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры. | Указатели и адреса. Привести пример программы, использующей указатели. | Указатели и массивы. Адресная арифметика. |
<== предыдущая страница | следующая страница ==>
Привести пример программы по обработке строк.| Макросы. Макросы с параметрами.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)