Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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; Мы поможем в написании ваших работ!; просмотров: 524 | Нарушение авторских прав


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

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

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

2334 - | 2011 -


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

Ген: 0.137 с.