|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||
Макрос, генерирующий опреденное количество переменных в структуре31.08.2017, 18:28. Показов 2151. Ответов 30
Метки нет (Все метки)
Доброго времени суток Господа. Хотел бы узнать такой момент. Можно ли с помощью макросов сгенерировать определенное количество переменных в структуре, определенного типа?
К примеру:
0
|
||||||
| 31.08.2017, 18:28 | |
|
Ответы с готовыми решениями:
30
Макрос, генерирующий звук с заданными продолжительностью и тоном Проверка переменных в структуре Непонятная перезапись переменных в структуре |
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 31.08.2017, 18:35 [ТС] | |
|
Avazart, ради любопытства захотел кое-что сделать
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 31.08.2017, 20:14 [ТС] | |
|
Evg, Почему? Объясните пожалуйста
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 31.08.2017, 20:20 | ||
|
1
|
||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 31.08.2017, 20:30 [ТС] | |
|
Fulcrum_013, Да одинаковый тип, но массивом нельзя. Нужно именно переменными
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 31.08.2017, 20:40 | |
|
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 31.08.2017, 20:42 [ТС] | ||
|
Fulcrum_013,
Просто нельзя их использовать и все. Нужно генерировать именно переменные.
0
|
||
|
|
|
| 31.08.2017, 20:58 | |
|
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 31.08.2017, 21:25 [ТС] | |
|
Evg, Тоесть, из-за того, что нет реальных циклов на препроцессоре, мою поставленную задачу нельзя решить?
0
|
|
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 01.09.2017, 08:12 [ТС] | |
|
Evg, вообщем тогда закрыли тему
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||
| 01.09.2017, 11:37 | ||||||||||||||||||
|
можно циклы, можно условия, и тп. другое дело, что результат гм... не особо читабельно-отлаживаемый. пример SFINAE-детектора компилябельности любых выражений на языке с++: Кликните здесь для просмотра всего текста
результат раскрытия макроса - SFINAE-детектор, при помощи которого можно времени компиляции определять, скомпилируется ли указанное выражение. в пользовательском коде, проверка компилябельности выражения может выглядеть так:
последний аргумент:
которое провалидирует результирующий шаблон. в данном примере: мы хотим времени компиляции узнать, можно ли объект типа Target вывести в поток типа Ostream разные выражения могут потребовать различное количество объектов, которое в нем участвуют. соответственно, нужно реплецировать шаблон-валидатор под это разное количество. в данном случае внутри результирующего шаблона в цикле прописываются соответствующие типы, аргументы, и тп. как видите, препроцессором можно практически без ограничений обрабатывать текст любой произвольной сложности. но блин - нефига же не читабельно. а если придется отлаживать - проще сразу застрелиться.
1
|
||||||||||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||
| 01.09.2017, 16:07 | ||||||||||||
При этом вариант с массивом имеет все те же возможности что и набор переменных. Плюс доступ по индексу без унсафе арифметики указателей.
1
|
||||||||||||
| 01.09.2017, 17:09 | |
|
0
|
|
| 01.09.2017, 17:18 | ||
|
Не по теме:
0
|
||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||
| 01.09.2017, 18:00 [ТС] | ||||
|
hoggy,
Я просто захотел впервые почувствовать на себе, что такое макросы, и поставил перед собой задачу, которая прозвучала в моем первом вопросе темыFulcrum_013,
Но просто хотел посмотреть, можно ли с помощью макросов генерировать определенное количество переменных. Поэтому и решил без массивов. С массивами конечно все просто![]() Fulcrum_013, Не по теме:
0
|
||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 01.09.2017, 18:04 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 01.09.2017, 18:40 | ||
Сообщение было отмечено Bretbas как решение
Решениеесли есть возможность их не использовать, то стоит подумать: может ну их нафиг? они используются для двух основных целей: 1. условная компиляция что бы на уровне исходного кода порешать проблемы платформо-специфических зависимостей, либо применить настройки конфигурации (допустим, в релизе мы хотим повыпиливать из сборки часть проверок) 2. для значительно расширяющих возможности языка. существует мнение, что и первое и второе - не нужно. но мы то знаем
1
|
||
| 01.09.2017, 18:40 | |
|
Помогаю со студенческими работами здесь
20
Почему не получается освободить память, выделенную для переменных в структуре? Передача переменных Excel/Word в макрос
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|