Размерность массива в зависимости от количества директив
- Войдите на сайт для отправки комментариев
Пт, 01/07/2022 - 00:36
Всем добра!
Подскажите пожалуйста прием для задания размера массива в зависимости от количества констант. Знаю про #ifdef, но не одуплюсь как с его помощью посчитать константы.
Сейчас делаю вот так:
#define pin_dimmer_0 10
#define pin_dimmer_1 11
byte pin_dimmer[2] = {pin_dimmer_0, pin_dimmer_1};
byte dimmer_level[2] = {};
byte dimmer_variable[2] = {};
но хотелось бы не менять код каждый раз при изменении количества диммируемых выходов.
Спасибо!
Не задавать размер, пусть компилятор его сам считает
Есть параметры (в виде #define) которые меняются юзером - они могут быть в отдельном файле, а есть программа, которая должна быть неизменна.
#define PIN_DIMMER_0 10 //принято писать заглавными! #define PIN_DIMMER_1 11 #define PINS PIN_DIMMER_0, PIN_DIMMER_1 byte pin_dimmer[] = {PINS}; byte dimmer_level[] = {}; //можно так byte dimmer_variable[sizeof(pin_dimmer)] = {}; //а лучше такНикак. Это туда - к Питону.
вроде как бы ответ #1 самое то! НЕ?
вроде как бы ответ #1 самое то! НЕ?
Хотел написать библиотеку куда при инициализации передавались бы номера выходов, происходило бы волшебство и дальше передавался бы номер выхода и частота. Видится что-то такое:
#define PIN_DIMMER_0 10 #define PIN_DIMMER_1 11 ... #define PIN_DIMMER_n n+10 //подсчитываем количество директив for (byte i = 0; i < n; i++) { ...В противном случае придется редактировать код библиотеки при изменении конфигурации димера.
зря оставили. кусок темы, снесите все.
ТС ярко продемонстрировал свою ненужность на этом форуме. Дело не в словах и не в переводе. Просто человек на достаточно невинную шутку ответил нехилым оскорблением