Препроцессор – это программа, которая обрабатывает текст вашей программы до компилятора. Таким образом, на вход компилятора попадает текст, который может отличаться от того, который видите вы. Работа препроцессора управляется директивами. С помощью препроцессора можно выполнять следующие операции: включение в программу текстов из указанных файлов; замена идентификаторов последовательностями символов; макроподстановка, т.е. замена обозначения параметризованным текстом, формируемым препроцессором с учетом конкретных аргументов; исключение из программы отдельных частей текста (условная компиляция).
Включение файлов производиться с помощью директивы #include, которая имеет следующий синтаксис:
#include #include путь |
Угловые скобки здесь являются элементом синтаксиса.
Директива #include включает содержимое файла, путь к которому задан, в компилируемый файл вместо строки с директивой. Если путь заключен в угловые скобки, то поиск файла осуществляется в стандартных директориях. Если путь заключен в кавычки и задан полностью, то поиск файла осуществляется в заданной директории, а если путь полностью не задан – в текущей директории. С помощью это директивы Вы можете включать в текст программы как стандартные, так и свои файлы.
Директива #include может быть вложенной. Это значит, что она может встретиться в файле, включенном другой директивой #include. Допустимый уровень вложенности директив #include зависит от реализации компилятора.
Макроподстановки реализуются директивой #define, которая имеет следующий синтаксис:
#define #define () |
Директива #define заменяет все вхождения идентификатора в исходном файле на текст, следующий в директиве за идентификатором. Этот процесс называется макроподстановкой. Идентификатор заменяется лишь в том случае, если он представляет собой отдельную лексему. Например, если идентификатор является частью строки или более длинного идентификатора, он не заменяется.
Условная компиляция обеспечивается в языке С++ набором команд, которые, по существу, управляют не компиляцией, а препроцессорной обработкой. Эти директивы позволяют исключить из процесса компиляции какие-либо части исходного файла посредством проверки условий.
#if[][#elif[]]…[#else []]#endif |
Каждой директиве #if в том же исходном файле должна соответствовать завершающая её директива #endif. Между директивами #if и #endif допускается произвольное количество директив #elif и не более одной директивы #else. Если директива #else присутствует, то между ней и директивой #endif на данном уровне вложенности не должно быть других директив #elif.
Комментарии.
Комментарий — это текст, который предназначен для программистов и не обрабатывается компилятором. Обычно комментарии используются для создания заметок к коду для дальнейшего использования. Компилятор обрабатывает их как пробел. Комментарии можно использовать при тестировании, чтобы сделать неактивными определенные строки кода, однако для этой цели лучше подходят директивы препроцессора #if и #endif, поскольку ими можно окружить код, содержащий комментарии, однако вложение комментариев не допускается.
Комментарии в C++ записываются одним из следующих способов:
Символы /* (косая черта и звездочка), за которыми следует любая последовательность символов, включая переводы строки, после чего ставятся символы */.
Символы // (две косые черты), за которыми следует любая последовательность символов. Символ перевода строки, непосредственно перед которым нет обратной косой черты, завершает комментарий, оформленный таким способом. Поэтому такие комментарии часто называют однострочными.
Список использованной литературы:
а) основная литература:
1.Т, А. Павловская C/C++ Программирование на языке высокого уровня. Год издания: 2012.
2. Бьерн Страуструп Язык программирования C++. 3-е издание.
б) дополнительная литература:
3. Джесс либерти, «Освой самостоятельно C++ за 21 день», изд. Дом «Вильямс», Москва — Санкт-Петербург — Киев
4. Н. Секунов, «Самоучитель Visual C++ 6», изд. «БХВ-Петербург», Санкт-Петербург, 2003
5. Бьёрн Страуструп. Язык программирования C++. Специальное издание = The C++ programming language. Special edition. — М.: Бином-Пресс, 2007. — 1104 с.
6. Айвор Хортон. Visual C++ 2010: полный курс = Ivor Horton’s Beginning Visual C++ 2010. — М.: Диалектика, 2010. — С. 1216.
7. Подбельский В.В. Язык Си++: учебное пособие для вузов.
8.Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2014.— 908 с.: ил.
9. Степанов Е.О., Чириков С.В. Стиль программирования на C++. Учебное пособие. — СПб.: СПбГИТМО(ТУ), 2015. — 48 с.
10. Бьерн Страуструп. Язык программирования С++ Второе дополненное издание Языки программирования / С++
Статьи к прочтению:
(Урок_8) Директивы препроцессора (#include) (C/C++)
Похожие статьи:
-
Использование директивы #define
С помощью директивы #define можно вводить собственные обозначения базовых или производных типов. Пример: Директива #define REAL long double вводит имя…
-
#еггог Это тестовая ошибка! компиляция прерывается и выводится сообщение Это тестовая ошибка ! . Директива #warning Директива #warning действует…