Allocazione statica della memoria
In informatica, con allocazione statica della memoria si intende l'allocazione di memoria per l'utilizzo di un programma durante la sua compilazione, diversamente per quanto accade con la memoria allocata dinamicamente o automaticamente, che invece viene resa disponibile a runtime.
Un esempio di questa tecnica può essere fatta con il modulo di un programma (ad esempio una funzione) che dichiari localmente dei dati statici, determinandone quindi a priori la dimensione.
La keyword static
[modifica | modifica wikitesto]L'effetto della keyword static varia tra i diversi linguaggi di programmazione, ma mantiene delle sostanziali affinità tra di essi. In C, ad esempio, una variabile definita come
void func (void) { static int a; /* ...*/ }
è disponibile per tutte le chiamate della funzione func
ed il suo valore è condiviso tra di esse: vale a dire che se, ad esempio, la funzione inserisce in a
il valore 10, alla successiva chiamata della funzione func
la variabile assumerà ancora il valore 10. Ovvero questa variabile locale di tipo static conserva il suo valore anche quando si esce dalla sua porzione di visibilità della funzione. Questa funzionalità può essere utile, ad esempio, per contare il numero di chiamate ad una funzione ricorsiva.
Nei linguaggi orientati agli oggetti, invece, la keyword static viene utilizzata per designare una variabile che, all'interno di una classe, viene condivisa tra tutti gli oggetti istanziati.