Best practice per il monitoraggio di più parti di dati in un programma

1

Ho un progetto in C (non chiedere perché ma deve essere in C), dove ho bisogno di tracciare più pezzi di dati e comandi per diversi moduli. Alcune azioni intraprese dal programma dipendono dalle interazioni tra queste diverse parti di dati (ad esempio se foo == 3 e bar == 4 do X, altrimenti fai Y). Alcune di queste parti di dati saranno strutture che raggruppano informazioni simili, alcune saranno solo primitive.

Mi chiedo quale sarebbe il modo migliore per implementarlo. Personalmente, penso che ogni dato debba essere la sua variabile in questo modo:

static int module_state;
static M1_Data module_1_data;
static int last_m1_command;
static M2_Data module_2_data;
etc...

Uno dei miei colleghi suggerisce invece di gestire tutto in una super struttura. Il suo ragionamento è che tutto può essere passato in un colpo solo se necessario, e renderà più facile tracciare dove tutto è, piuttosto che avere un mucchio di variabili perdenti. La sua idea è per qualcosa del genere:

struct{
int module_state;
M1_Data module_1_data;
int last_m1_command;
M2_Data module_2_data;
...
} SuperState;

static SuperState state

Non sono sicuro di essere d'accordo con il suo ragionamento. Quale sarebbe il modo migliore per gestirlo e quali sono i lati positivi / negativi di entrambi i metodi diversi da quelli elencati?

    
posta Joseph Amato 17.06.2015 - 16:15
fonte

1 risposta

0

Personalmente, preferirei usare le strutture, ma non una cosa comune, userei invece una per ogni modulo, con le proprietà che ho bisogno di "pubblicare" per poter utilizzare altri moduli.

Le variabili globali semplici sono più difficili da mantenere.

L'uso di una struttura per modulo eliminerà le dipendenze non necessarie (i dati relativi a un singolo modulo e solo a quel modulo, è nello stesso posto) tra i moduli e una struttura è facile da passare tutto in una volta dal puntatore.

    
risposta data 17.06.2015 - 17:06
fonte

Leggi altre domande sui tag