У меня проблема, когда мне нужно найти имя 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?