русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Применение директив

Рассмотрим пример:

#define WIDTH 80
#define LENGTH (WIDTH+10)

Данные директивы заменят в тексте программы каждое слово WIDTH на число 80 и любое слово LENGTH на выражение (80+10) вместе с окружающими его скобками. Скобки, которые содержатся в макроопределении, дают возможность избежать недоразумений, связан-
ных с порядком вычисления операций. К примеру, если в скобках выражение t = LENGTH*7 будет преобразовано в выражение t = 80 + 10*7, а не в выражение t = (80 +10)*7, как это получается, если есть скобки, в результате будем иметь 780, а не 630.

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

При макровызове за идентификатором следует список фактических аргументов, количество которых следует сделать совпадающим с количеством формальных параметров.

Пример:

#define MAX(x,y) ((x) > (y))?(x) : (y) Приведенная директива заменит фрагмент t = MAX(i,s[i]) на выражение t = ((i) > (s[i])?(i) : (s[i]).

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

Например, если есть скобки, фрагмент t = MAX(i&j, s[i]||j) будет заменен выражением

t = ((i&j) > (s[i]||j)?(i&j) : (s[i]||j);

а если скобок нет — фрагментом

t = (i&j>s[i]||j)?i&j : s[i]||j;

где условное выражение вычисляется в другом порядке.

Директива #undef применяется для отмены действия директивы #define. Синтаксис данной директивы следующий: #undef идентификатор.

Директива отменяет операцию текущего определения #define для определенного идентификатора.

Просмотров: 5432

Вернуться в оглавление:Шпаргалки по программированию




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.