Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
1

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

30.07.2012, 17:24. Просмотров 2387. Ответов 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
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2012, 17:24
Ответы с готовыми решениями:

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

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

Что означает решетка внутри макроса?
Нашёл код, там внутри макроса используются решетки. Что это означает? Если объясните сам код вообще...

Вывести значение макроса #define
Здравствуйте. Возникла проблема с #define. Нужно каким-нибудь способом вывести на экран значение...

2
~ Эврика! ~
1253 / 1002 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
30.07.2012, 17:32 2

Не по теме:

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


Нет, препроцессор такого не может.
0
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
30.07.2012, 19:25 3
Если уж прям приспичило, то напиши свой препроцессор. Потом добавляешь его в события компилятора и он будет обрабатывать исходники, а результат уже будет обрабатываться стандартным препроцессором и компилятором. Именно так был написан первый компилятор С++.)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2012, 19:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

[C++] define как определение константы vs. макроса
На всякий случай. Это не константа, а макрос Начало здесь:...

Использование списка внутри макроса
Добрый день ! Помогите, что то не могу догадаться как работать с небольшим списком используя его...

Подпрограммы (RCALL) внутри макроса
Доброго времени суток! Постараюсь максимально точно изложить суть проблемы, которую я испытываю в...

Как реализовать директиву #define для создания шаблона отпределения #define ?
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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