Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
#1

Define внутри макроса - C++

30.07.2012, 17:24. Просмотров 1190. Ответов 2
Метки нет (Все метки)

Подкажите возможно ли написать макрос кот. создаст #define?
например:
C++
1
#define  MACRO(name)  #define NAME name
знаю, что напрямую так не напишешь т.к. второй define будет взят в кавычки, но может есть какая "хитрость"

Нужен макрос раскрывающийся в следующий код
пишем так:
C++
1
2
3
4
5
6
7
8
#define MAT1(name, ...) int name##1 [] = { __VA_ARGS__ }; 
#define MAT2(name, ...) int name##2 [] = { __VA_ARGS__ }; 
...
START(name)  // #define NAME name 
 MAT1(1, 2)
 MAT2(3, 4)
 MAT3(5, 6)
STOP()       // #undef NAME
Раскрыться должен в
C++
1
2
3
4
5
#define NAME name 
 MAT1(NAME ,1, 2)
 MAT2(NAME ,3, 4, 5)
 MAT3(NAME , 6)
#undef NAME
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2012, 17:24     Define внутри макроса
Посмотрите здесь:

[C++] Директива #define. В виде макроса определен шаблон функции. - C++
Здравствуйте! Есть проблема и мне она непонятна! В программке присутствует директива #define в ней в виде макроса определен...

Define внутри макро-функции - C++
Возможно ли сделать в стиле: #define MY_MACRO( a, b ) \ # ifdef a \ # define b 1 \ # ...

#define и clrscr() - C++
Добрый день! В прошлый раз мне тут здорово помогли...вот и сейчас, надеюсь на помощь. Коллега, который писал код, уволился. В мне...

#define VS inline - C++
Что работает быстрее: #define SQR(x) x*x void Func() { for(int i = 0; i < 10; ++i) { cout << SQR(i) << endl; ...

Директивы define - C++
Рассматривая настоящую объемную программу, наткнулся на огромное количество файлов с длинным списком директив #define. Можете вкратце...

Нелепые define-ы - C++
Вопрос... Какой смысл в таких define-ах? Чтобы никто ни черта не понял? оО #define _TRY_BEGIN try { #define _CATCH(x) } catch (x)...

Const #define - C++
{ const int HOLFSDsize= 2;//#define HOLFSDsize 2 // m-угольник void HOLFSD() { int i, n, l; // объявляем...

массивы в define - C++
Ребят, подскажите плиз. Имеется программа для работы с неким исполнительным механизмом посредством СОМ-порта из-под никсов. Форматы...

#define and debug_mode - C++
Столкнулся с необходимостью использовать при отладке довольно внушительные куски кода. (ранее решил проблему с мелкими кусками)(смотри...

#define catalog - C++
При разростании проекта возникла проблема. Есть к примеру 10 папок. В каждой есть файл типа *.h с названием обьекта и соответственно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
30.07.2012, 17:32     Define внутри макроса #2

Не по теме:

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


Нет, препроцессор такого не может.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.07.2012, 19:25     Define внутри макроса #3
Если уж прям приспичило, то напиши свой препроцессор. Потом добавляешь его в события компилятора и он будет обрабатывать исходники, а результат уже будет обрабатываться стандартным препроцессором и компилятором. Именно так был написан первый компилятор С++.)
Yandex
Объявления
30.07.2012, 19:25     Define внутри макроса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru