typedef enum
s позволяют удобно описать набор пар имя-значение. Есть ли способ связать их, чтобы создать более глубокие структуры, используя enum на всех уровнях?
Например, у меня есть следующее:
typedef enum logic {ALPHA=0, BETA=1} a_t;
typedef enum logic {GAMMA=0, DELTA=1} b_t;
typedef enum logic {ZETA=0, ETA=1} c_t;
...
Я хочу создать переменную c
, которая состоит из a_t
и b_t
. Возможно ли это?
Что-то вроде:
a_t b_t c;
, поэтому при каждом измерении c
я могу иметь enum
с.
РЕДАКТИРОВАТЬ: Некоторые пояснения - Предположим, что a_t
, b_t
и c_t
являются неизменяемыми, поскольку они генерируются автоматически. И есть сотни таких разных перечислений. Я хочу создавать большие структуры по мере необходимости, потому что автоматическая генерация всех их комбинаций сделает код слишком большим и грязным.
Например, скажем, мой a_t
описывает количество мастеров, а b_t
описывает количество рабы. Я хочу создать структуру, в которой у меня есть эта иерархия в моем сигнале, и в то же время разрешить enum
s для них, чтобы их было легко читать и использовать.
Итак, что-то вроде этого:
c[MASTER_0][SLAVE_0]
c[MASTER_0][SLAVE_1]
c[MASTER_1][SLAVE_0]
c[MASTER_1][SLAVE_1]