Директива - препроцессор - Большая Энциклопедия Нефти и Газа, статья, страница 3
В развитом обществе "слуга народа" семантически равен "властелину народа". Законы Мерфи (еще...)

Директива - препроцессор

Cтраница 3


Макросы препроцессора представляют собой операции, определяемые в директиве препроцессора define. Макрос состоит из имени ( идентификатора макроса) и текста замены. Макросы могут определяться со списком параметров или без него. Макросы без параметров обрабатываются подобно символическим константам - текст замены подставляется в программе вместо идентификатора макроса. Макросы с параметрами подставляют параметры в заменяющий текст, и затем происходит расширение макроопределения в программе.  [31]

Символические константы и макросы могут быть аннулированы с помощью директивы препроцессора undef. Директива undef отменяет определение символической константы или макроса.  [32]

Определения символических констант и макросов могут быть аннулированы при помощи директивы препроцессора undef. Директива undef отменяет определение символической константы или макроса. Область действия символической константы или макроса начинается с места их определения и заканчивается явным, их аннулированием директивой undef или концом файла.  [33]

Константные переменные используются так же, как символические константы, определяемые директивой препроцессора Idef ine и традиционно применяемые в программах на языке С. Там, где требуется константное выражение, нужно инициализировать константную переменную константным выражением. Подобно константе, определяемой оператором ttdefine, константная переменная может быть определена в файле заголовков, включенном в один или более исходных файлов, составляющих программу. В отличие от неконстантной переменной, константная по умолчанию является локальной для файла, в котором она определена. Иногда она может быть определена более чем в одном исходном файле, что не приводит к появлению ошибки при компоновке программы.  [34]

Препроцессинг - необязательная фаза, состоящая в анализе исходного текста, извлечения из него директив препроцессора и их выполнения.  [35]

В качестве примера использования прототипов функции для расширения области действия функции, рассмотрим любую программу, содержащую директиву препроцессора include string. Эта директива включает в файл прототипы функций типа strcmp и strcat. Все функции в файле могут использовать функции strcmp и strcat для выполнения своих задач. Функции strcmp и strcat определены где-то в другом месте и нам не нужно знать, где они определены; мы просто можем использовать их в наших программах. Редактор связей разрешит ссылки на эти функции автоматически.  [36]

Обработка программы препроцессором происходит перед ее компиляцией. Все директивы препроцессора начинаются с символа и до начала директивы в строке могут находиться только символы пробела.  [37]

Условные директивы препроцессора вычисляют значение целочисленного выражения. В директивах препроцессора не допускаются выражения приведения типа, выражения sizeof и перечислимые константы.  [38]

Не забывайте, что директивы препроцессора не являются операторами языка С.  [39]

Из промежуточного файла все директивы препроцессора удаляются, поэтому они отсутствуют в конечном варианте кода источника.  [40]

Если в дальнейшем заменить задаваемое значение Debug на false, то операторы отладки перестанут выполняться. Отличие этого подхода от использования директив препроцессора заключается в том, что коды операторов отладки в этом случае останутся в тексте программы, увеличивая размер выполняемого модуля. А директивы условной компиляции просто уберут отладочный код из программы.  [41]

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

Условные директивы препроцессора вычисляют значения целочисленных константных выражений. Операции преобразования типов, операция sizeof и константы перечислимого типа не могут участвовать в выражениях, вычисляемых в директивах препроцессора.  [43]

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

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



Страницы:      1    2    3    4