Questa domanda ha già una risposta qui:
Sto scrivendo una domanda per i miei corsi di laurea, in C, usando la libreria GTK + UI. A volte chiedo l'input dell'utente, che devo salvare per un uso futuro.
Il dubbio arriva su come conservare questi dati. Non volevo creare variabili globali perché mi è stato detto innumerevoli volte di non usarle. Tuttavia, ho bisogno di interscambiare i dati tra funzioni che non si chiamano direttamente (a causa del pattern del segnale di slot, non ho una funzione sempre accessibile dopo l'avvio del loop di eventi), quindi ho bisogno di una memoria indipendente.
Per questo scopo ho progettato una funzione getter simile a questa:
char *store_data(char *data, int clear) {
static char *stored_data = NULL;
if(data == NULL) {
if(clear) {
stored_data = NULL;
} else {
return stored_data;
}
} else {
stored_data = data;
}
return NULL;
}
È un tale costrutto OK o dovrei semplicemente usare una variabile globale, invece?