Questa potrebbe essere una domanda stupida, mi dispiace.
Ho letto molto sugli inconvenienti delle variabili globali su questo sito. Sto finalmente cercando di aumentare la qualità del mio codice per un grande progetto che verrà esaminato da molti. Comprendo che l'utilizzo di vars globali rende il codice più difficile da eseguire il debug, poiché non si sa dove la variabile possa essere modificata (rendendo il codice spaghetti).
Tuttavia, ho un caso abbastanza specifico in cui non posso davvero pensare a un modo per evitare variabili globali. Ho un programma in esecuzione su un dispositivo incorporato (sotto FreeRTOS, tutto in C) in cui ho circa 20 funzioni ragionevolmente complesse, in cui ci sono forse 10 variabili globali passate in giro. Circa 3/4 del codice è in tempo reale, mentre il resto è asincrono, usando le variabili che le altre funzioni manipolano e inviando i loro contenuti a un server.
Ecco uno snippet di pseudocodice:
float important_var = 0;
void some_synchronous_function(){
do_something();
math.operation(important_var);
}
void do_something(){
important_var+=5;
}
void async(){
if(important_var > 5){
//whatever
}
}
main(){
some_synchronous_function();
}
Questo è un modo ragionevole per farlo? (cower in fear)