Salve, sono alle prese con un programma in C in cui ho una struttura molto simile a questa:
e per accedere agli elementi utilizzo un'enumerazione come questa:
quindi faccio così:
Però quello che voglio fare è impostare la struttura
Voglio fare ciò perchè nel progetto reale avrò bisogno di accedere dinamicamente all'array, ed in altri casi saprò già a priori quali elementi toccare, e dato che i nomi delle enumerazioni nel progetto reale sono molto più prolisse rispetto a quelle nell'esempio, riterrei più comodo e bello da leggere l'accesso tramite nome piuttosto che ll'accesso tramite indice hard-coded, quinid mi chiedo, è possibile fare una cosa del genere in C?
C:
typedef struct MyStruct_
{
int arr[3];
} MyStruct;
e per accedere agli elementi utilizzo un'enumerazione come questa:
C:
typedef enum MyIndex_
{
A,
B,
C
} MyIndex;
quindi faccio così:
C:
/* Per accedere all'elenemento che ho 'nominato' A */
MyStruct ms;
ms.arr[A] = 0;
Però quello che voglio fare è impostare la struttura
MyStruct
in modo da accettare anche l'accesso tramite nome:
C:
MyStruct ms;
ms.arr.a = 0;
ms.arr.b = 1;
/* ecc... */
/* oppure anche così non sarebbe male */
ms.a = 0;
ms.b = 1;
Voglio fare ciò perchè nel progetto reale avrò bisogno di accedere dinamicamente all'array, ed in altri casi saprò già a priori quali elementi toccare, e dato che i nomi delle enumerazioni nel progetto reale sono molto più prolisse rispetto a quelle nell'esempio, riterrei più comodo e bello da leggere l'accesso tramite nome piuttosto che ll'accesso tramite indice hard-coded, quinid mi chiedo, è possibile fare una cosa del genere in C?