Макросы. Директива #define позволяет осуществлять более сложные подстановки, а именно определять функции, зависящие от нескольких аргументов – макроопределения или

Директива #define позволяет осуществлять более сложные подстановки, а именно определять функции, зависящие от нескольких аргументов – макроопределения или макросы:

#define SUMMA(x,y) ((x)+(y))

При этом каждое вхождение в текст программы выражения SUMMA(a,b) заменяется препроцессором на выражение ((a)+(b)), причем формальные аргументы макроса x и y заменяются соответственно на фактические аргументы (константы, переменные, элементы массивов, выражения) a и b, для которых и вычисляется значение макроса:

r=SUMMA(2,3);

В этом случае значение переменной r будет равно 5.

В общем виде эта директива записывается следующим образом:

#define ИМЯ (список аргументов) выражение

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

#define SUMMA(x,y) ((x)+\

(y))

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

Директиву можно использовать и для обращения к стандартным функциям:

#define VYVOD puts(“Programma studenta Vasi Pupkina”)

Выполняя эту директиву, препроцессор заменит в программе все встретившиеся имена VYVOD на функцию вывода puts(“Programma studenta Vasi Pupkina”).

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

 








Дата добавления: 2015-10-19; просмотров: 819;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.