Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
30 / 8 / 2
Регистрация: 20.08.2011
Сообщений: 615
1

Не работает макрос

18.10.2016, 13:29. Показов 708. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Есть макросы:
C++
1
2
3
4
5
6
#define ACTION(var, value) int var = value;
 
#define EXEC_ACTION(value, handler, ...) handler(value, __VA_ARGS__)
#define EXTEND_MARCO_ARGS(...) __VA_ARGS__
#define ENUMERATE_MARCO_ARGS(args) EXTEND_MARCO_ARGS args
#define DO(value, data) EXEC_ACTION(value, ENUMERATE_ARGS(data))
Далее он вызывается:
C++
1
DO(testIntVar, (ACTION, 123))
Должно раскрыться в:
C++
1
int testIntVar = 123;
Однако мне пишет:
Код
ошибка: 'ACTION' does not name a type
Почему? Как исправить? Макрос DO по задумке должен вторым аргументом принимать параметры в круглых скобках.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2016, 13:29
Ответы с готовыми решениями:

Макрос делает копию листа и сохраняет в новую книгу, но макрос в новой не работает
Есть макрос в книге. Он копирует текущий лист, создает новую книгу и копирует в новую книгу лист. ...

Макрос не работает с полным диапазоном текста, работает только до 99 ячейки
Добрый вечер. Вот есть макрос. Он должен брать из диапазона в столбце А данные (их дофига и...

Макрос работает, а код, преобразованный из макроса - не работает
Здравствуйте! Подскажите пожалуйста, почему функция выдаёт ошибку "32538: в TempVar можно хранить...

макрос <L> не работает
Подскажите, как исправить эту ошибку? Error 1 error C2440: 'initializing' : cannot convert from...

3
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
18.10.2016, 13:32 2
C++
1
#define ACTION(var, value) var = value;
0
30 / 8 / 2
Регистрация: 20.08.2011
Сообщений: 615
18.10.2016, 15:56  [ТС] 3
Нее, конечно нет. У нас же объявление переменной, ее без типа нельзя объявить. Тут макрос ACTION в принципе можно заменить что-нибудь свое.

Добавлено через 2 часа 8 минут
Так, видимо никто ничего не знает...

Упростим задачу. Почему не раскрывается как надо это:[CCP]EXEC_ACTION(testIntVar, EXTEND_MARCO_ARGS (ACTION, 123) )[/CCP]?
0
Helper C/C++
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
18.10.2016, 16:02 4
Вот так:

C++
1
EXEC_ACTION(100, pointer_to_function, 1, 2, 3);
0
18.10.2016, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2016, 16:02
Помогаю со студенческими работами здесь

Не работает макрос
в лабораторной работе у меня надо написать макрос: создать макроопределение (некий PRINT_TYPE) в...

Не работает макрос
Всем привет, есть 3 файла, 1 из них берет данные из двух других. На старых версиях Office, т.е. на...

Не работает макрос
Подскажите, пожалуйста, не могу исправить ошибки макроса. В чём тут ошибка? (defmacro sum-range...

Не работает макрос
Решил сделать макрос который бы, из одного журнала вырезал ячейки с информацией о человеке и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru