Text Substitution

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

Файлы исходного текста должен изменяться различными способами прежде, чем компиляция будет проведена. Поскольку программисты полагаются на препроцессор, чтобы выполнить эти модификации, знание основного использования препроцессора является существенным. С тех пор как C++ программы состоят полностью из текста, программист должен использовать препроцессор, чтобы включать декларации внешних классов или функций. Это известно как включение файла. Использование других особенностей препроцессора, таких как макро-замена, требуется не обязательно. Макроопределение существует как удобство программисту.

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

У Java языка нет инструмента подобным C ++ препроцессор. Вместо этого Java обеспечивает языковые механизмы, которые выполняют те же самые задачи, которые выполняет C++ процессор.