Introdução à palavra-chave estática em C

A palavra-chave estática em C varia de maneira diferente, de forma que é uma palavra-chave que pode ser usada com variáveis ​​e também com funções. Portanto, é muito necessário obter uma demarcação para obter as características reais ou o comportamento da palavra-chave especificamente em termos da linguagem C. É um pouco difícil obter o entendimento completo de maneira tão completa para um iniciante, para examinarmos a sintaxe, trabalhando de fato como ele funciona em C, algumas normas e regras a serem seguidas, pois pode ser um pouco confuso saber quando usá-lo para escopo da variável e quando usar para o escopo do bloco funcional.

Sintaxe

1. Sintaxe da palavra-chave estática em C ao definir uma variável:

static
static
Examples of syntax for static variables:
static int run = 0;
int static sleep = 0;

2. Sintaxe da palavra-chave estática em C ao definir uma função:

static
static
Examples of syntax for static functions:
static void run ()
(
)
void static sleep ()
(
)

Como a palavra-chave estática funciona em C?

Basicamente, existem duas maneiras pelas quais a palavra-chave estática funciona em termos de C.

  • A palavra-chave estática dentro de uma função.
  • A palavra-chave estática fora de uma função.

1. Palavra-chave estática dentro de uma função

A declaração da variável em uma função está associada ao tempo de compilação e duração de armazenamento da variável em uma chamada de função. Em palavras simples, as variáveis ​​definidas como estáticas ampliam seu escopo para várias chamadas de função e, uma vez declaradas, não podem perder seu escopo até o final da execução do programa. Ele começa a definir seu escopo no próprio tempo de compilação.

Exemplo

# include
int main ()
(
run ();
run ();
run ();
)
void run ()
(
static int running = 0;
++running;
printf ("The function \"run\" was called %d times.\n", running);
)

Resultado:

2. Palavra-chave estática fora de uma função

Uma vez que a palavra-chave estática é declarada fora de uma função, ela limita seu escopo da variável e fica visível apenas para o arquivo atual, o que significa que a função terá seu escopo limitado ao próprio arquivo de origem. O acesso a essa variável ou função estática obtém restrições de outro arquivo de origem.

Embora seja considerado bom declarar uma função como estática, o que ajuda no encapsulamento de dados para um escopo específico. Pessoas com experiência em OOPs ou java podem facilmente relacioná-lo com o funcionamento de palavras-chave privadas e públicas.

Exemplo

Para definir variáveis ​​na função externa, ou seja, no nível global, precisamos definir pelo menos a palavra-chave estática.

Defina uma variável estática em um arquivo de origem e a mesma variável na segunda variável em outro arquivo de origem.

Source1.c
static int sleep = 0;
Source2.c
static int sleep= 0;
static void sleep ()
(
static int sleeping = 0;
++ sleeping;
printf (“the function \ “sleep\” was called %d times.\n”, sleeping);
)

Resultado:

Especificando o tamanho mínimo de um parâmetro de matriz

Há um uso muito essencial que ignoramos às vezes, vamos dar uma olhada nele.

Também podemos informar ao compilador o parâmetro de armazenamento para a declaração mínima de elementos dentro de um ponteiro de array para uma função. Mas este caso é seguido muito raramente (seguido até o compilador C99).

Exemplo

Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)
Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)

Basicamente, isso informará que o argumento não será nulo.

Regras e regulamentos para a palavra-chave estática em C

1. Em termos de variável estática

  • Uma variável estática sempre permanece ativa quando um programa está em execução, diferente das palavras-chave automáticas e reservadas.
  • A alocação de armazenamento e memória ocorre no segmento de dados, não no segmento de pilha.
  • Por padrão, se a variável não for declarada com nenhum valor por padrão, ela será definida explicitamente pelo compilador como 0.
  • A declaração de variáveis ​​estáticas é feita principalmente usando literais constantes.
  • Considera-se principalmente que não devemos definir uma variável estática dentro de uma função, pois isso torna todo o módulo funcional um pouco complexo.

2. Em termos de função estática

  • A declaração da variável é basicamente considerada global por padrão, portanto, o uso da palavra-chave estática com uma função a restringe ao escopo, limitando-o ao mesmo arquivo de origem.
  • Uma boa característica de tornar a função estática é a reutilização, ou seja, podemos chamar a mesma função várias vezes sempre que necessário para execução.

Vantagens

  • Considerar uma variável como estática é vantajosa no sentido em que ajuda a otimizar todo o fluxo de código.
  • Reutilização e redefinição ajudam o compilador a chamar qualquer variável internamente, sem fazer com que qualquer outra palavra-chave como extern domine.
  • Uma outra vantagem é aumentar a legibilidade de forma que o futuro obtenha um reconhecimento de que o arquivo é declarado como estático e não pode ser acessado por nenhum outro arquivo ou arquivo de origem.
  • Isso também evita que muitos declarem o arquivo c, ou seja, redeclaram-no como outra variável externa.

Conclusão

  • O termo "estático" tem sua própria tendência de ser considerado sensível ou sem sentido. A linguagem de programação diferente tem significados diferentes apenas relacionados à palavra-chave estática. Linguagem orientada a objetos, ela se comporta muito bem com uma propriedade de encapsulamento.
  • Em termos de C, C # e C ++, ele tem uma natureza diferente. Alguns consideram o uso da estática como o melhor, devido às vantagens de otimização, reutilização e limitação de escopo. A maioria é do reconhecimento do arquivo final legível.
  • Mais tarde, incluindo alguns usuários ingênuos, poderá facilmente saber se dois arquivos de origem não coincidem, contabilizando o conteúdo interno das funções estáticas e da variável estática, como ocorrerá através do erro de compilação.
  • Mas em termos de C, isso não é considerado uma maneira segura, porque a comunicação interna entre os threads se torna insegura e difícil, pois está se tornando uma variável global. Portanto, às vezes, é considerado um modo não tão convencional em termos de C usar a palavra-chave estática em C.

Artigos recomendados

Este é um guia para a palavra-chave estática em C. Aqui discutimos como a palavra-chave estática funciona em C com as Regras e regulamentos. Você também pode consultar o seguinte artigo para saber mais -

  1. Variáveis ​​em C
  2. Troca em C
  3. Funções matemáticas em C
  4. Número reverso em C
  5. Trocando em PHP
  6. Palavras-chave PHP
  7. Os 5 principais atributos de eventos HTML com exemplos