È meglio usare una variabile esterna o passare un puntatore?

6

Mentre scrivevo in C, mi sono sempre chiesto quando è il momento migliore per usare una variabile esterna. Generalmente preferisco passare un puntatore a un metodo. C'è un tempo corretto per utilizzare una variabile esterna e un tempo corretto per utilizzare i puntatori?

    
posta stmfunk 29.12.2013 - 23:37
fonte

2 risposte

10

Le variabili dovrebbero sempre avere il più piccolo ambito possibile. Questo può portare al "fastidio" di non essere in grado di accedere facilmente alle variabili, ma questo è effettivamente il punto! Più nascondi una variabile dall'intrusione, meglio è. Se riesci a mantenere una variabile al sicuro da tutte le letture e le scritture tranne che da un punto, questo è il migliore! Questo aiuta a scrivere codice senza errori.

Quindi per rispondere alla tua domanda in modo più specifico, passa le variabili come segue con # 1 come metodo migliore:

  1. Per valore
  2. Come puntatore a variabili in cui indirizzo e dati sono costanti
  3. Come puntatore a variabili in cui l'indirizzo e i dati non sono costanti
  4. Globalmente su un solo file
  5. Globalmente a tutti i file
risposta data 30.12.2013 - 03:28
fonte
1

Al momento non riesco a vedere un motivo per cui dovresti usare una variabile globale invece di passare un altro parametro tranne nel caso in cui hai a che fare con un codice critico dal punto di vista delle prestazioni e potresti avere vincoli come la memoria dello stack, restrizioni ABI e così.

Questo si applica al codice C che hai posto nella domanda, non si adatta perfettamente a un contesto orientato agli oggetti (anche se le persone usano anche oggetti C ++ in contesti intensivi delle prestazioni).

    
risposta data 30.12.2013 - 14:19
fonte

Leggi altre domande sui tag