Mi sono imbattuto in queste dichiarazioni di Enum e Struct in un progetto presumibilmente fatto da un esperto. Le dichiarazioni / definizioni sono poco diverse da quelle finora utilizzate.
enum EnumKeys {
KEY_MENU ,
KEY_EXIT ,
KEY_DOWN ,
KEY_UP ,
KEY_RIGHT ,
.
.
.
};
Ma da nessuna parte nel codice l'enum effettivo è stato definito da una riga di codice come
EnumKeys test;
per esempio. Ma ancora KEY_MENU, KEY_EXIT sono disponibili gratuitamente subito dopo questa dichiarazione. Ad esempio, se digito cout << KEY_EXIT
, stampa 1.
Un'altra istanza è, questa dichiarazione / definizione della struttura.
typedef struct t_ExpoData {
int8_t expNorm;
int8_t expDr;
int8_t drSw;
}ExpoData;
typedef struct t_ModelData {
...
...
ExpoData expoData[4]; // 3*4
}ModelData;
Quindi il modo in cui leggo questo è che c'è una nuova struttura con il nome ExpoData e una sua istanza è ExpoData.
Invece di usare subito quell'istanza, perché la seconda dichiarazione ExpoData expoData[4]
?
Se qualcuno lo capisce, a partire da quale specifica clang è presente, e come interpretarlo correttamente, è molto apprezzato.