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 -
- Variáveis em C
- Troca em C
- Funções matemáticas em C
- Número reverso em C
- Trocando em PHP
- Palavras-chave PHP
- Os 5 principais atributos de eventos HTML com exemplos