Перечисление от значения обратно к имени для объединения - PullRequest
0 голосов
/ 15 июня 2019

У меня проблема, когда мне нужно найти имя enum по его значению.Поэтому в заголовочном файле определено следующее:

#define ADDR_TO_SETTING(ADDR) setting_ ## ADDR

typedef struct
{
    uint8_t setting_ADDR_LOG_ACTIVE;
} Settings_t;

typedef enum
{
    ADDR_LOG_ACTIVE
} Settings_addr_e

Теперь у меня есть функция с параметром адреса, для которой я хочу установить настройку с адреса:

Settings_t curr_settings;

void Settings_set_value_uint8_t(Settings_addr_e addr, uint8_t val)
{
    curr_settings.ADDR_TO_SETTING(addr) = val;
}

Так как мне разрешить параметр addr обратно в ADDR_LOG_ACTIVE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...