Nwlapcug.com


Come dichiarare una variabile statica in C

Le variabili statiche sono una parte utile di C. Ti danno la flessibilità nel fare le funzioni che restituiscono dati più complessi, ma essi possono essere difficili da comprendere e utilizzare in modo efficace.

Istruzioni

Dichiarare una variabile statica

1

So che le variabili statiche vengono dichiarate sempre all'interno di una funzione di C, ma a differenza di altre variabili, i valori continuano ad esistere e vengono mantenuti, anche dopo la funzione termina.

2

Dichiarare una variabile statica utilizzando la stessa sintassi come si farebbe per dichiarare una variabile locale normale, ma precedere la dichiarazione con la parola statica, come questo:

static int somma = 0;

3

Aspettatevi l'inizializzazione per accadere solo la prima volta che si chiama la funzione. Le volte successive, il valore precedente sarà ancora lì. Se si omette l'inizializzazione, esso verrà automaticamente inizializzato a 0.

4

Utilizzare la variabile nella funzione come si farebbe con qualsiasi altro.

5

Ricordate che, come qualsiasi altra variabile locale, una variabile statica non può essere indicata all'esterno della funzione. Tuttavia, se si passa fuori un puntatore ad esso, il puntatore può essere dereferenziato correttamente, poiché la variabile esiste ancora.

Sapere quando utilizzare le variabili statiche

6

Utilizzare una variabile statica per consentire la funzione di avere la propria memoria che trasporta oltre da una chiamata a altra. Per esempio, una funzione che ottiene e analizza che la riga successiva di un file potrebbe essere necessario internamente tenere traccia di dove è nel file.

7

Utilizzare una variabile statica come un modo per fornire un pezzo di memoria per archiviare un risultato. Ad esempio, una funzione per concatenare stringhe potrebbe utilizzare una variabile statica in cui archiviare il risultato della concatenazione e restituire un puntatore ad esso. Memoria della variabile statica è sempre disponibile, ma vengono liberata automaticamente quando il programma termina, proprio come qualsiasi altra variabile locale.

8

Utilizzare le variabili statiche per un accumulo in esecuzione totale o simile. Si consideri questo esempio:

int running_total (int num) {
static int somma = 0;
somma + = num;
restituire la somma;
} Ogni volta che si chiama questa funzione, mantiene e restituisce un totale parziale di tutti i numeri passati in esso.

Consigli & Avvertenze

  • Utilizzare le variabili statiche per evitare di dover passare una variabile nella funzione C per nessun motivo diverso da quello per aggiornare e mantenere il suo valore.
  • State attenti di effetti collaterali quando si restituisce un puntatore alla variabile statica. Se si chiama la funzione più volte, il risultato di ciascuno viene sovrascritta durante la prossima.
  • È pericoloso usare un puntatore alla variabile statica come parametro alla funzione. Ad esempio, in una funzione per concatenare le stringhe, non cercare di concatenare qualcosa al risultato di una concatenazione precedente!