Programação C

Estático na programação C

Estático na programação C
Neste tutorial, vamos explicar a palavra-chave estática aplicando-a em variáveis ​​e funções. Static é uma palavra-chave usada na programação C e pode ser aplicada usando a seguinte sintaxe:

estático tipo de dados nome da variável

Variáveis ​​locais estáticas

Quando uma variável em uma função é estática, a variável preserva seu valor entre as chamadas de função.

//Exemplo 1.c
#incluir
int fun1 ()

contagem interna = 0;
contagem ++;
contagem de retorno;

int fun2 ()

contagem interna estática = 0;
contagem ++;
contagem de retorno;

int main ()

printf ("fun1 1ª chamada retorna:% d \ n", fun1 ());
printf ("fun1 2ª chamada retorna:% d \ n \ n", fun1 ());
printf ("fun2 1ª chamada retorna:% d \ n", fun2 ());
printf ("fun2 2ª chamada retorna:% d \ n", fun2 ());
return 0;


No Exemplo 1.c, temos duas funções: fun1 () e fun2 (). Dentro fun1 (), declaramos uma variável (contagem) e a inicializamos como 0. Em seguida, incrementamos a variável de contagem e retornamos o valor resultante. Usando a Principal(), nós chamamos fun1 () duas vezes, e a cada vez, um valor de 1 é retornado porque a variável de contagem é limpa quando a chamada para fun1 () está completo. Dentro fun2 () declaramos a variável de contagem como uma variável estática. Portanto, seu valor é preservado. Usando a Principal(), nós chamamos fun2 () duas vezes: na primeira vez, um valor de 1 é retornado, e na segunda vez, um valor de 2 é retornado.

Variáveis ​​globais estáticas

Uma variável global estática se comporta da mesma maneira que outras variáveis ​​globais, mas não pode ser acessada de outro programa C.

Funções estáticas

Em C, as funções são globais por padrão. No entanto, se declararmos uma função estática, então a função é local e não pode ser acessada de outro programa C.

Inicialização de variáveis ​​estáticas

Se uma variável estática não for inicializada explicitamente, ela será inicializada como 0.

// Exemplo2.c
#incluir
int main ()

static int i;
printf ("Valor de i:% d \ n", i);
return 0;


No Exemplo 2.c, declaramos uma variável estática i que não foi inicializada. No entanto, como a variável é estática, ela é inicializada automaticamente em 0.

É importante observar que uma variável estática deve ser inicializada por um literal constante; não podemos usar o valor de retorno de uma função para inicializar uma variável estática.

// Exemplo3.c
#incluir
int fun1 ()

return 5;

int main ()

estático int i = fun1 ();
printf ("Valor de i:% d \ n", i);
return 0;


No Exemplo 3.c, tentamos inicializar uma variável estática usando o valor de retorno de fun1 (). No entanto, como você pode ver, um erro é retornado quando o código é compilado.

Resumo

O tempo de vida de uma variável estática e o tempo de vida do programa são iguais.

Se uma variável estática não for inicializada, ela assumirá um valor padrão de 0.

Nem uma variável estática global nem uma função estática são acessíveis a partir de um programa diferente daquele em que foi definida.

Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...
Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...