Лекции.Орг


Поиск:




Include <имя_файла> // имя в угловых скобках




Вопрос 10

Подготовка программы к исполнению (схема, основные этапы, реализация для С++)

Подготовка программы к исполнению

 

1. Подготовка текста. До выполнения программы необходимо подготовить ее текст в файле с расширением.cpp. (используется текстовый редактор языка Си++).

 

2. Препроцессорная обработка текста программы.

Назначение препроцессора – обработка исходного текста программы до ее компиляции.

Препроцессорная обработка в соответствии с требованиями стандарта языка Си++ включает несколько стадий, выполняемых последовательно. Конкретная реализация транслятора может объединять несколько стадий, но результат должен быть таким, как если бы они выполнялись последовательно:

· все системно-зависимые обозначения (например, системно-зависимый индикатор конца строки) перекодируются в стандартные коды;

· каждая пара символов ‘\’ и «конец строки» убираются, и тем самым следующая строка исходного файла присоединяется к строке, в которой находилась эта пара символов;

· в тексте распознаются директивы препроцессора, а каждый комментарий заменяется одним символом пустого промежутка;

· выполняются директивы препроцессора и производятся макроподстановки;

· ESC-последовательности в символьных константах и символьных строках, например, ‘\n’ заменяются на их эквиваленты (на соответствующие числовые коды);

· смежные символьные строки конкатенируются, т.е. соединяются в одну строку.

Рассмотрим подробно стадию обработки директив препроцессора. При ее выполнении возможны следующие действия:

· замена идентификаторов (обозначений) заранее подготовленными последовательностями символов;

· включение в программу текстов из указанных файлов;

· исключение из программы отдельных частей ее текста (условная компиляция);

· макроподстановка, т.е. замена обозначения параметризованным текстом, формируемым препроцессором с учетом конкретных параметров (аргументов).

Для управления препроцессором, т.е. для задания нужных действий, используются команды (директивы) препроцессора, каждая из которых помещается на отдельной строке и начинается символом #.

Препроцессорные директивы:

#define, #include, #undef, #if, #ifdef, ifndef, #else, #endif, #elif, #line, #error, #pragma, #.

 

Директива #define.

Define идентификатор строка_замещения

 

Может размещаться в любом месте обрабатываемого текста, действие обычно распространяется от точки размещения до конца текста. В результате обработки все вхождения идентификатора, определенного командой #define, заменяется строкой замещения.

Если строка замещения оказалась слишком длинной, то ее можно продолжить в следующей строке текста программы, для этого в конце продолжаемой строки помещается символ ‘\’.

Замены в тексте можно отменять с помощью команды:

Undef идентификатор

 

Директиву #undef удобно использовать при разработке больших программ, когда они собираются из отдельных «кусков текста», написанных в разное время или разными программистами. В этом случае могут встретиться одинаковые обозначения разных объектов. Чтобы не изменять исходных файлов, включаемый текст можно «обрамлять» подходящими директивами #define – #undef и тем самым устранять возможные ошибки.

Директива #include.

include <имя_файла> // имя в угловых скобках





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 509 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наука — это организованные знания, мудрость — это организованная жизнь. © Иммануил Кант
==> читать все изречения...

1320 - | 1174 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.