пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

4 курс 2 семестр:
» Компьютерная графика и дизайн
» Анимация в Macromedia Flash
» Защита информации в компьютерных сетях
» Web-программирование
4 курс 1 семестр:
» Инструментальные средства разработки ПО
» Технология разработки ПО
» Документирование и сертификация
3 курс 2 семестр:
» Базы данных
» Инфокоммуникационные системы и сети
» Прикладное программирование
» Системное программирование
2 курс 2 семестр:
» Охрана труда
» Пакеты прикладных программ
» Основы программирования

26.процессор языка c/c++.Включение файла.Макроподстановка.Условная компиляция

Препроцессор C++ — это часть компилятора, которая подвергает вашу программу различным текстовым преобразованиям до реальной трансляции исходного кода в объектный. Программист может давать препроцессору команды, называемые директивами препроцессора(preprocessor directives), которые, не являясь формальной частью языка C++, способны расширить область действия его среды программирования.
Include

Вы уже видели директивы #include в действии. Когда вы #include файл, препроцессор копирует содержимое включаемого файла и вставляет в активный файл сразу же после строчки #include. Это очень полезно, когда у вас есть информация, которая должна быть в нескольких местах (например, как предварительные объявления).

Команда #include имеет две формы:

#include <filename> сообщает препроцессору искать файл в специальном месте, определенном в операционной системе, где находятся файлы заголовков библиотеки С++ Runtime. Чаще всего вы будете использовать эту форму при подключении заголовочных файлов, которые поставляются вместе с компилятором (например, те, которые являются частью стандартной библиотеки C++).

#include "filename" сообщает препроцессору искать файл в директории, в которой находится текущий файл. Если заголовка там не будет, препроцессор начнет проверять любые другие пути, которые вы определили как часть настроек вашего компилятора/IDE. Эта форма используется для подключения своих собственных заголовочных файлов.
Макроподстановка используется для простейшей замены: во всех местах, где встречается лексемаимя, вместо нее будет помещен замещающий-текст. Имена в #define задаются по тем же правилам, что и имена обычных переменных. Замещающий текст может быть произвольным. Обычно замещающий текст завершает строку, в которой расположено слово #define, но в длинных определениях его можно продолжить на следующих строках, поставив в конце каждой продолжаемой строки обратную наклонную черту . Область видимости имени, определенного в #define, простирается от данного определения до конца файла. В определении макроподстановки могут фигурировать более ранние #define-определения. Подстановка осуществляется только для тех имен, которые расположены вне текстов, заключенных в кавычки. 
Препроцессор языка Си предоставляет возможность компиляции с условиями. Это допускает возможность существования различных версий одного кода. Обычно такой подход используется для настройки программы под платформу компилятора, состояние (отлаживаемый код может быть выделен в результирующем коде) или возможность проверки подключения файла строго один раз.
Условия препроцессора можно задавать несколькими способами

Большинство современных языков программирования не используют такие возможности, больше полагаясь на традиционные операторы условия if...then...else..., оставляя компилятору задачу извлечения бесполезного кода из компилируемой программы.


06.05.2018; 23:15
хиты: 314
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь