Cтраница 4
Условная компиляция позволяет программисту управлять выполнением директив препроцессора и компиляцией программного кода. Каждая из условных директив препроцессора оценивает значение целочисленного выражения. В директивах препроцессора невозможна оценка выражений приведения типа, выражений sizcof и перечислимых констант. [46]
На следующем этапе программист дает команду компилировать программу. В системе C перед началом этапа трансляции выполняется программа предварительной обработки. Эта программа в C подчиняется специальным командам, называемым директивами препроцессора, которые указывают, что в программе перед ее компиляцией нужно выполнить определенные преобразования. Обычно эти преобразования состоят во включении других текстовых файлов в файл, подлежащий компиляции, и выполнении различных текстовых замен. [47]
Эта директива проверяет, был ли определен указанный в ней условный идентификатор. Если определен, то код, расположенный между директивой IFDEF и директивой ENDIF, компилируется. В противном случае этот фрагмент кода не компилируется, т.е. все расположенные в нем директивы препроцессора и операторы языка Delphi игнорируются и в результирующий файл не попадают. [48]
Условная компиляция дает возможность программисту управлять выполнением директив препроцессора и компиляцией программного кода. Каждая условная директива препроцессора вычисляет значение целочисленного константного выражения. Операции преобразования типов, операция sizeof и константы перечислимого типа не могут участвовать в выражениях, вычисляемых в директивах препроцессора. [49]
Исходный файл определений элементов-функций класса Time ( часть 2 из 3 Хороший стиль программирования. [50] |
При создании программ большего размера в заголовочные файлы будут также помещены и другие определения и объявления. Если заголовок ранее не был включен в файл, директива define определяет имя Т1МЕ1 Н и происходит включение операторов заголовочного файла. Если заголовок был включен ранее, то имя TIME1JH уже определено и заголовочный файл повторно не включается. Замечание: по соглашению, которое мы используем для имен символических констант в директивах препроцессора, имя такой константы представляет собой просто имя заголовочного файла с символом подчеркивания вместо точки. [51]