static
Definição static
Sintaxe:
static tipo_variável nome_variável
Como padrão toda variável definida dentro de uma função é alocada na pilha interna de execução da função. Ao final da função a pilha é liberada, liberando assim a memória alocada pela variável. Na próxima chamada à função é feita uma nova alocação na pilha assim por diante.
Deve-se indicar através da palavra static
na definição de uma variável, quando for necessário que a variável local de uma função permaneça com o seu valor mantido, permitindo assim que na próxima chamada utilizar o valor anterior.
Veja o exemplo:
/* programa static.c */ #include <stdio.h> int somatorio (int, int); int main (void) { int iValor_a; int i; i = 1; while (1) { printf ("Entre com um valor:"); scanf ("%d", &iValor_a); if (iValor_a == 0) { break; } printf ("Somatorio %d\n", somatorio (i++, iValor_a)); } return 0; } int somatorio (int iContador, int iValor) { static int iSoma; /* Declara a variável como static, ou seja, diz ao compilador que o conteúdo da variável iSoma deve ser guardado na memória até o final da execução do programa */ if (iContador == 1) { iSoma = iValor; /* Na primeira execução, a variável iSoma recebe o valor digitado... */ } else { iSoma += iValor; /* ... nas demais execuções, a variável iSoma recebe o seu próprio valor somado ao conteúdo de iValor */ } return iSoma; }
static.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1