Una matrice a lunghezza fissa funziona perfettamente, poiché il numero di tasti non può essere modificato.
Quindi, crea un array, chiamalo depresso , di lunghezza N, dove N è il numero di tasti sul dispositivo di input.
Quando il tasto X è premuto, impostare [X] su True.
Quando viene rilasciata la chiave X, impostare [X] su False.
Per riportare lo stato Vero / Falso di una determinata chiave, avrai bisogno di una mappatura dai nomi a livello utente / API, agli indici nella tua matrice.
per esempio. MOTOR_REVERSE_TOGGLE - > posizione 6 nell'array.
Per quanto riguarda efficienza , un array dovrebbe essere adeguato per lo spazio, a meno che tu non abbia restrizioni di memoria molto strette su qualunque dispositivo tu stia programmando. In tal caso, utilizzeresti un campo bit per memorizzare i dati. Fondamentalmente, è lo stesso dell'array, tranne che per le parole impostate su True o False (che finirebbero con alcuni numeri magici, ad esempio 11111111 e 00000000), si impostano i singoli bit di una parola su 1 o 0.