Variáveis estáticas são uma parte útil de C. Eles dão-lhe flexibilidade na tomada de funções que retornam dados mais complexas , mas podem ser difíceis de compreender e utilizar de forma eficaz. Instruções
declarar uma variável estática
1
Saiba que variáveis estáticas são sempre declarada dentro de uma função C, mas ao contrário de outras variáveis , os valores continuam a existir e são mantidas, mesmo após as saídas de função.
2
declare uma variável estática, usando a mesma sintaxe que você faria para declarar uma variável local normal, mas preceder a declaração com a palavra estática, assim:
soma static int = 0;
3 esperar inicialização para acontecer apenas na primeira vez que você chamar a função . Vezes subseqüentes , o valor anterior ainda estará lá . Se você omitir a inicialização, ele será automaticamente inicializado a 0 .
4
Utilize a variável na função como se fosse qualquer outro.
5
Lembre-se que , como qualquer outra variável local, uma variável estática não pode ser encaminhado para fora da função . No entanto, se você passar um ponteiro para ele , o ponteiro pode ser desreferenciado com sucesso , uma vez que a variável ainda existe.
Saber quando usar Variáveis estáticas
6
Use uma variável estática para permitir que sua função para ter sua própria memória que transporta mais de uma chamada para outra. Por exemplo, uma função que recebe e analisa a próxima linha de um arquivo pode precisar internamente manter o controle de onde ele está no arquivo .
7
Use uma variável estática , como uma forma de fornecer uma peça de memória para armazenar um resultado . Por exemplo, uma função para concatenar strings pode usar uma variável estática para armazenar o resultado da concatenação e retornar um ponteiro para ele . A memória da variável estática é sempre disponível , mas será automaticamente liberada quando o programa termina , assim como qualquer outra variável local.
8
Use variáveis estáticas para um total acumulado ou similar em execução. Veja este exemplo:
int running_total (int num) {int soma estática = 0; soma + = num ; soma return;} Cada vez que você chamar essa função , mantém e devolve um total de execução de todos os números passaram para ele.