Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » C,С++ и C# - Статьи »

Обсудить на форуме Обсудить на форуме

Макросы в C/С++

Макросы - это препроцессорные "функции" , т.е. лексемы, созданные с помощью директивы #define, которые принимают параметры подобно функциям. После директивы #define указывается имя макроса, за которым в скобках (без пробелов) параметры, отделенные запятыми и определение макроса, отделенное пробелом.

Например:

#define ADD(x,y) x = x + y

если после этого написать: int a=2; int b=3; ADD(a,b); cout<<"a= "<<A<<" b="<<b;

то получим: a=5 b=3

Параметры макросов лучше писать в скобках, хотя это не обязательно, но иногда отсутствие скобок приводит к неожиданным результатам. Вот пример, надеюсь все ясно, объяснять ничего не буду. #define MACRO1(x) x * x #define MACRO2(x) ( x ) * ( x ) int a =2; int b=3; cout<<" macro 1- ? <<MACRO1(a+b); cout<<?nmacro 2- ?<<MACRO2(a+b); #define CALLFUNC(x) My##x##Function()

и вызывать функции MyFirstFunction(), MySecondFunction() ,MyThirdFunction() и т.д. макросом CALLFUNC CALLFUNC(First); CALLFUNC(Second);

У многих компиляторов есть ряд встроенных макросов. Наиболее распостраненные - __DATE__ , __TIME__ , __LINE__ , __FILE__ , которые заменяются текущей (на время компиляции) датой, временем, номером строки и именем исходного файла соответственно. Встроенные макросы можно использовать без объявления. Пример: cout<<"Compiled on "<<__DATE__<<" "<<__TIME__ ;

Результат: compiled on Sep 52001 23:49:55


Может пригодится:


Автор:
Прочитано: 7103
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (0)

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру