Come dichiarare una variabile statica in C

July 13

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

istruzione

Dichiarare una variabile statica

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

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

int somma statica = 0;

3 Aspettatevi di inizializzazione accada solo la prima volta che si chiama la funzione. tempi successivi, il valore precedente sarà ancora lì. Se si omette l'inizializzazione, verrà automaticamente inizializzato a 0.

4 Utilizzare la variabile in funzione di come si farebbe con qualsiasi altra.

5 Si ricorda che, come qualsiasi altra variabile locale, una variabile statica non può essere riferito al di fuori della funzione. Tuttavia, se si passa un puntatore ad esso, il puntatore può essere dereferenziato con successo, dal momento che esiste ancora la variabile.

Sapere quando utilizzare le variabili statiche

6 Utilizzare una variabile statica per consentire la funzione di avere una propria memoria che trasporta oltre da una chiamata ad un altro. Per esempio, una funzione che riceve ed analizza la successiva riga di un file potrebbe essere necessario mantenere internamente traccia di dove è nel file.

7 Utilizzare una variabile statica come un modo per fornire un pezzo di memoria per memorizzare il risultato. Per esempio, una funzione per concatenare stringhe potrebbe utilizzare una variabile statica in cui memorizzare il risultato della concatenazione e restituisce un puntatore a esso. La memoria della variabile statica è sempre disponibile, ma verrà automaticamente liberato quando il programma termina, come qualsiasi altra variabile locale.

8 Utilizzare variabili statiche per un accumulo totale o simile in esecuzione. Considerate questo esempio:

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

Consigli e avvertenze

  • Utilizzare variabili statiche per evitare di dover passare una variabile nella funzione C per nessun altro motivo che per aggiornare e mantenere il suo valore.
  • Fare attenzione di effetti collaterali quando si restituisce un puntatore alla variabile statica. Se si chiama la funzione più volte, il risultato di ogni viene sovrascritto durante il prossimo.
  • E 'pericoloso usare un puntatore alla variabile statica come parametro alla funzione. Ad esempio, in una funzione per concatenare stringhe, non tentare di concatenare qualcosa al risultato di una concatenazione precedente!