У меня есть массив структуры:
typedef struct s_values{
field1;
field2;
field3;
}t_values;
t_values values[5];
Итак, есть 5 типов, и у каждого типа есть три поля.Чтобы получить значение для определенного типа, поле должно быть получено с помощью values[type].field
Я хочу отойти от этой структуры и вместо этого использовать постоянные макросы.
Цель состоит в том, чтобы иметь макрос #define VALUE(type, field)
: - где тип - это перечисление, а поле - это просто имя поля
Как мне это сделать?
Я думал что-то вроде:
#define VALUE2(type, field) type##field
#define VALUE(type, field) VALUE2(type, field)
#define type1field1 7
#define type2field2 67
....
Но type на самом деле enum. Кроме того, я не уверен, что использование ## превосходит цель избежать косвенного обращения ..
У кого-то есть идея получше ... или помогите улучшить направление, в котором я былнаправляетесь?