Variável estática
Em programação de computadores, uma variável estática é uma variável que foi alocada "estaticamente", o que significa que seu tempo de vida (ou "extensão") é toda a execução do programa. Isso contrasta com as variáveis automáticas de vida curta, cujo armazenamento é alocado e desalocado em pilha na pilha de chamadas; e em contraste com os objetos, cujo armazenamento é alocado e desalocado dinamicamente na memória heap.
O tempo de vida da variável é contrastado com o escopo (onde uma variável pode ser usada): "global" e "local" referem-se ao escopo, não ao tempo de vida, mas o escopo geralmente implica em tempo de vida. Em muitas linguagens, as variáveis globais são sempre estáticas, mas em algumas linguagens são dinâmicas, enquanto que as variáveis locais são geralmente automáticas, mas podem ser estáticas.
Em geral, a alocação de memória estática é a alocação de memória em tempo de compilação, antes que o programa associado seja executado, ao contrário da |alocação de memória dinâmica ou alocação automática de memória, onde a memória é alocada conforme necessário em tempo de execução.[1]
Referências
- ↑ Jack Rons. «What is static memory allocation and dynamic memory allocation?». http://www.merithub.com/: MeritHub [An Institute of Career Development]. Consultado em 16 de junho de 2011.
O compilador aloca o espaço de memória necessário para uma variável declarada. Usando o operador addressof, o endereço reservado é obtido e este endereço pode ser atribuído a uma variável de ponteiro. Como a maioria das variáveis declaradas tem memória estática, essa maneira de atribuir valor de ponteiro a uma variável de ponteiro é conhecida como alocação de memória estática. A memória é atribuída durante o tempo de compilação.