Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 17

Несколько макро с разными параметрами

23.04.2014, 17:50. Показов 911. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Хочу определить в программе
C++
1
2
#define func(number)            { call(number, 0); }
#define func(number1, number2)  { call(number1, number2); }
Но по понятным причинам компилятор ругается на (macro redefinition)
Подскажите как обойти эту фигню
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2014, 17:50
Ответы с готовыми решениями:

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

Как автоматически создать несколько переменных с разными именами?
Товарищи программисты, есть строка с данными и в ней присутствуют точки, помогите пожалуйста написать цикл Который бы присваивал каждой...

вычислить значения одной и той-же функции с разными значениями, в несколько потоков
Есть задача, вычислить значения одной и той-же функции с разными значениями, которые известны изначально, в несколько потоков и вывести...

7
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
23.04.2014, 17:53
Avadd, Чем не угодила перегрузка функций?
0
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 17
23.04.2014, 18:01  [ТС]
0x10, ну... в зависимости от других дефайнов эти макросы могут вырождаться в другие формы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define SOMETHING 10
 
#if SOMETHING == 10
#define func(number) { call(ololo); call(2); }
#endif
 
#if SOMETHING == 2
#define func(number) { call(ololo); }
#endif
 
#if SOMETHING == 0
#define func(number) { (void)0 }
#endif
Как-то так
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
23.04.2014, 18:06
Avadd, не аргумент, тела функций тоже можно заключать в блоки условной компиляции.
0
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 17
23.04.2014, 18:27  [ТС]
Нашел такое решение
http://stackoverflow.com/quest... h-c-macros
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
23.04.2014, 18:40
Может быть, оправдано для Си. Для С++ не вижу повода так извращаться.
0
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 17
23.04.2014, 18:58  [ТС]
А как ты предлагаешь сделать для с++ вот это

C++
1
2
3
4
5
6
7
8
#if SOMETHING == 2
#define func(x)         { printf("%s value = %d\n", (__FILE__), (#x)); call(x)}
#define func(x,message)    { printf("%s. %s: value = %d\n", (__FILE__), message, (#x)); call(x) }
#endif
 
#if SOMETHING == 1
#define func(x)       { call(x); }
#endif
?

Вариант встраивать диагностические сообщения (printf чо-та там) в тело call не рассматриваются
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
23.04.2014, 19:12
А тут уже другой случай - используется специфичная для препроцессора фича - получение имени переменной в коде программы, что и мешает реализовать иначе.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2014, 19:12
Помогаю со студенческими работами здесь

Программа осуществляющая вызов функции несколько раз с различными параметрами
Даны действительные числа s,t. Получить g(1.2s)+g(2s-1,st), где g(a,b)=\frac{{a}^{2}+{b}^{2}-4*a*b}{{a}^{2}+5*a*b+3*{b}^{2}+4*a-b} ...

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

Нужно несколько раз запустить один .bat файл с разными параметрами.
Прошу помочь советом. Мне надо из VB appl (Windows NT)несколько раз запустить один и тотже .bat файл, но каждый раз c разными параметрами....

Конструктор с разными параметрами
...извините что обращаюсь, сам не местный...))) пробую создать обьект и написать конструктор. Загвоздка в том что в JS (кажеться)...

Добавить круги с разными параметрами
Всем привет) Сейчас разбираюсь с канвасом. Подскажите как сделать 7 кругов со случайными размерами, координатами, прозрачностью и цветом....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru