C · Essencial · Inglês · Técnico
static
Palavra-chave com dois usos: em variável local, faz o valor persistir entre chamadas; em função ou variável global, limita a visibilidade ao arquivo de origem (ligação interna).
Onde usar
Aparece em code review quando alguém quer um contador privado ou esconder funções auxiliares de um .c. Marcar helpers como static evita colisão de nomes na hora de ligar o programa.
Em código
static int proximo(void) {
static int n = 0; // criada uma só vez
return ++n;
}
int main(void) {
proximo();
return proximo(); // sai com código 2
}Exemplos
Make that helper static so it stays private to the file.
Deixe esse helper static para ele ficar privado ao arquivo.
A static local keeps its value between calls.
Uma variável local static mantém o valor entre as chamadas.
Cuidado
Confundir com o static de outras linguagens: em C ele não cria membro de classe, e a variável local static é inicializada uma única vez.
Sinônimos
ligação interna
Antônimos
extern