Server for Information Technologies Книжный магазин 'Мистраль'
Сервер содержит море(!) аналитической информации
Поддерживается Центром Информационных Технологий

Статус MCSE за 720 долларов!
Клубная система обучения гарантирует результат!

Снижена цена на ListSoft & Citforum CD-ROM Конференция
Интернет-Маркетинг'Осень99

 

Операция ##. Конкатенация в макроопределениях

В следующем примере мы используем ещё одну специальную операцию для упревления препроцессором - операцию конкатенации ##. Обычно эта операция используется в контексте функциональных макроопределений.

Если в замещающей последовательности лексем между двумя лексемами встречается операция препоцессирования ## и, возможно, что одна или обе лексемы являются параметрами, то препроцессор вначале обеспечивает подстановку фактических значений в параметры, после чего сама операция конкатенации и окружающие её пробельные символы убираются:

#include <iostream.h>
#define XXX(YYY) "МАРТИНИ со льдом и" ## YYY
void main() 
{
 cout << XXX("ВИСКИ с содовой") << endl;
 cout << XXX("на сегодня достаточно┘") << endl;
// Для препроцессора тип параметра не имеет значения.
// Важно, как посмотрит на это транслятор┘
 cout << XXX(255);
}

Перед нами ещё одно мощное и изящное средство управления препроцессором.

Назад | Содержание | Вперед

 

Home Каталог ресурсов Поиск Рубрикатор FTP-архив Subscribe

Комментарии: info@citmgu.ru
Newman    Книжный магазин Mistral Copyright ©