Saiba mais sobre a variável estática em C [com exemplo de codificação]

Publicados: 2020-10-21

Em 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.

Prepare-se para uma carreira do futuro

APRENDIZAGEM CONFIÁVEL NA INDÚSTRIA - CERTIFICAÇÃO RECONHECIDA NA INDÚSTRIA.
Inscreva-se hoje