Gli extern (variabili globali) sono mai giustificabili?

3

In quali circostanze ritieni che sia giustificato utilizzare esternamente (cioè variabili globali)?

Ad esempio, in un sistema con 1 stato dato alla volta, sarebbe opportuno memorizzare questo stato in un extern?

    
posta Edward 02.12.2017 - 18:13
fonte

1 risposta

1

Potrebbe essere necessaria una variabile globale extern , se:

  • un elemento dello stato del programma (cioè il contenuto della variabile globale) deve essere condiviso, AND

  • non è possibile gestire questi elementi come membro di una classe statica (preferibilmente privato o protetto), AND

  • non è possibile permettersi il sovraccarico dell'incapsulamento in un singleton, E

  • non c'è un modo semplice per rendere gli oggetti / le funzioni che si occupano di quello stato di conoscersi e comunicare direttamente invece di usare il globale, AND

  • non è desiderabile raggruppare le classi / funzioni che hanno bisogno di questo stato nella stessa unità di compilazione (il che potrebbe almeno ridurre il rischio di effetti collaterali imprevisti, rendendo tale variabile globale static e quindi meno visibile ).

In alternativa, potresti avere bisogno di una variabile globale extern volatile per gli stessi motivi, ma se si tratta dello stato del sistema (ad esempio, la posizione fissa utilizzata dall'hardware)

    
risposta data 02.12.2017 - 19:26
fonte

Leggi altre domande sui tag