Saiba mais sobre a variável estática em C [com exemplo de codificação]
Publicados: 2020-10-21Em sua jornada de programação, você pode ter trabalhado em torno da maioria das variáveis. Eles são um aspecto muito importante para qualquer programador, pois a declaração de uma variável determina o tamanho, layout, intervalo de valores armazenados na memória e o conjunto de operações a serem aplicadas a ela. É o nome dado a uma área de armazenamento que um programa pode manipular. Neste artigo, discutiremos uma das variáveis mais importantes em C, ou seja, a variável estática .
A palavra-chave estática em C é usada com bastante frequência. Uma coisa que muitas vezes é confundida pela maioria dos programadores é como as variáveis locais e globais afetam a estática. Em cada caso, a palavra-chave static funciona de forma diferente em termos de onde os dados são armazenados e como eles se comportam ao longo do programa. A seguir estão os principais usos de uma palavra-chave estática:
eu. Uma variável local em uma função ou variável local estática: A visibilidade é a mesma das variáveis locais automáticas.
ii. Variável global em um módulo ou variável global estática: Declarada no início de um programa.
iii. Uma função em um módulo ou função estática: existe em todo o programa.
4. Variável de membro ou variável de membro estática: acessada por todas as instâncias de uma classe.

v. Um método ou método estático: Acessado por todas as instâncias de uma classe.
Examinaremos todos os três casos de uso e como eles mudam com a área de armazenamento da variável e aprimoram a qualidade do código.
Índice
O que é uma variável estática?
Na programação, uma variável estática é aquela alocada “estaticamente”, o que significa que seu tempo de vida é durante toda a execução do programa. Ele é declarado com a palavra-chave 'static' e persiste seu valor nas chamadas de função.
Sintaxe:
A sintaxe de uma variável estática é:
estático data_type nome_variável;
Declaração de variável estática
Quando uma variável estática é declarada, uma cópia dela é criada. O objetivo principal de serem usados no lugar de uma variável local é que eles retenham o valor atribuído no escopo onde está presente. O programador não precisa inicializar a variável repetidamente no novo escopo de um programa. Existe em todo o programa.
Estático, em geral, é um especificador de classe de armazenamento aplicado a qualquer tipo de dados. Ele direciona o compilador para limitar uma variável ou função no escopo do programa e persiste durante toda a vida útil do programa. Esta propriedade permite que variáveis estáticas sejam encapsuladas ou ocultas do resto do programa evitando qualquer acesso não intencional. O desenvolvedor pode controlar como as variáveis são acessadas dentro de um módulo. Esta é uma boa prática de programação.
Leia: Mais de 130 perguntas e respostas sobre entrevistas em Java
Variável estática em um programa
· Uma variável estática permanece no espaço de memória durante a execução de todo o código.
· O valor de inicialização padrão de uma variável estática é zero, mesmo que não seja atribuído, o que não ocorre em uma variável local.
· É obrigatório inicializar a variável estática usando a palavra-chave estática em C senão retornará um erro.
· A variável estática só é inicializada na primeira vez quando uma função é chamada.
· Em uma variável estática , a memória de uma variável estática é alocada.

· Uma variável estática global não é acessível fora do programa.
Programa Básico em Variável Estática em C
#include <stdio.h>
int main()
{
printf(“%d”,func());
printf(“\n%d”,func());
retornar 0;
}
função int ()
{
estático int contagem=0;
contagem++;
contagem de retorno ;
}
Aqui neste código, a variável count é declarada como uma variável estática . A cada chamada de func(), o valor de count é atualizado para 1. Na próxima chamada de função, o valor da variável count se torna 2. Assim, o valor da variável estática persiste na chamada da função.
Saída:
1
2
Diferença entre variável local e estática
As variáveis locais e estáticas são usadas alternadamente em um programa. Aqui estão algumas diferenças importantes entre os dois:
| Pontos Distintivos | Variável Local | Variável Estática |
| Declaração de palavra-chave variável | 1. É declarado por uma variável automática, por exemplo, int a = 1. | 1. É declarado por uma variável estática , por exemplo, static int a = 1. |
| Declaração de variável | 2. É declarado dentro da função. | 2. É declarado dentro ou fora da função. |
| Criação de Variáveis | 3. Ele é criado toda vez que uma função é chamada. | 3. Ela é criada apenas para a 1ª chamada de função, e a mesma variável é usada para chamadas posteriores. |
| Inicialização variável | 4. Ele é inicializado toda vez que uma função é chamada. | 4. É inicializado apenas uma vez em um programa. |
| Valor padrão da variável | 5. Se não inicializado, um valor de lixo é armazenado na variável. | 5. Se não inicializado, o valor 0 é armazenado em estático por padrão. |
| Rescisão variável | 6. Quando a função termina, ela termina. | 6. Se declarado dentro de uma função, é acessível somente nessa função. O escopo é limitado a essa função e seu tempo de vida é até que o programa termine. Se declarada fora da função, a variável será global e acessível por qualquer função do arquivo. O escopo é o arquivo, mas o tempo de vida é até que o programa termine. |
Com esta tabela, fica claro por que as variáveis estáticas são preferidas às variáveis locais.
Código Composto por Variável Local e Estática
#include <stdio.h>
int main(){
auto int a = -15;
estático int b = 5;
printf(“Valor da variável automática a é %d\n”, a);
printf("Valor da variável estática b é %d\n",b);
if(a!=0)
printf(“A soma da variável estática e automática é %d\n”,(b+a));
retornar 0;
}
Saída do programa:
O valor da variável automática é -15

O valor da variável estática é 5
A soma da variável estática e automática é -10
Leia também: Ideias de projetos C
Resumo
A palavra-chave static é amplamente usada para muitos recursos que ela oferece na programação C. Seu principal uso é limitar o escopo de variáveis definidas em uma função ou módulo. Os desenvolvedores podem experimentar a segurança, pois as variáveis e funções podem ser ocultadas do programa externo por meio do uso da variável estática . Em muitas linguagens modernas orientadas a objetos, o uso de static é substituído por private e public.
Se você estiver interessado em aprender mais e precisar de orientação de especialistas do setor, confira o PG Diploma in Full-Stack Software Development da upGrad & IIIT Banglore.
