Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Classe de armazenamento C

Classe de armazenamento C


Neste tutorial, você aprenderá sobre escopo e tempo de vida de variáveis ​​locais e globais. Além disso, você aprenderá sobre variáveis ​​estáticas e de registro.

Cada variável na programação C tem duas propriedades:tipo e classe de armazenamento.

Tipo refere-se ao tipo de dados de uma variável. E a classe de armazenamento determina o escopo, visibilidade e vida útil de uma variável.

Existem 4 tipos de classe de armazenamento:
  1. automático
  2. externo
  3. estático
  4. registrar

Variável local


As variáveis ​​declaradas dentro de um bloco são variáveis ​​automáticas ou locais. As variáveis ​​locais existem apenas dentro do bloco em que são declaradas.

Vamos dar um exemplo.
#include <stdio.h>

int main(void) {
  
  for (int i = 0; i < 5; ++i) {
     printf("C programming");
  }
  
 // Error: i is not declared at this point
  printf("%d", i);  
  return 0;
}

Ao executar o programa acima, você receberá um erro identificador não declarado i . É porque i é declarado dentro do for bloco de laço. Fora do quarteirão, não é declarado.

Vamos dar outro exemplo.

int main() {
    int n1; // n1 is a local variable to main()
}

void func() {
   int n2;  // n2 is a local variable to func()
}

No exemplo acima, n1 é local para main() e n2 é local para func() .

Isso significa que você não pode acessar o n1 variável dentro de func() pois só existe dentro de main() . Da mesma forma, você não pode acessar o n2 variável dentro de main() pois só existe dentro de func() .

Variável global




Variáveis ​​declaradas fora de todas as funções são conhecidas como variáveis ​​externas ou globais. Eles são acessíveis a partir de qualquer função dentro do programa.

Exemplo 1:variável global

#include <stdio.h>
void display();

int n = 5;  // global variable

int main()
{
    ++n;     
    display();
    return 0;
}

void display()
{
    ++n;   
    printf("n = %d", n);
}

Saída
n = 7

Suponha que uma variável global seja declarada em file1 . Se você tentar usar essa variável em um arquivo diferente file2 , o compilador reclamará. Para resolver esse problema, a palavra-chave extern é usado em file2 para indicar que a variável externa está declarada em outro arquivo.

Registrar Variável


O register palavra-chave é usada para declarar variáveis ​​de registro. As variáveis ​​de registro deveriam ser mais rápidas que as variáveis ​​locais.

No entanto, compiladores modernos são muito bons em otimização de código, e há uma rara chance de que o uso de variáveis ​​de registro torne seu programa mais rápido.

A menos que você esteja trabalhando em sistemas embarcados onde você sabe como otimizar o código para uma determinada aplicação, não há uso de variáveis ​​de registro.

Variável estática


Uma variável estática é declarada usando o static palavra-chave. Por exemplo;
static int i;

O valor de uma variável estática persiste até o final do programa.

Exemplo 2:variável estática

#include <stdio.h>
void display();

int main()
{
    display();
    display();
}
void display()
{
    static int c = 1;
    c += 5;
    printf("%d  ",c);
}

Saída
6 11

Durante a primeira chamada de função, o valor de c é inicializado em 1. Seu valor é aumentado em 5. Agora, o valor de c é 6, que é impresso na tela.

Durante a segunda chamada de função, c não é inicializado em 1 novamente. É porque c é uma variável estática. O valor c é aumentado em 5. Agora, seu valor será 11, que é impresso na tela.

Linguagem C

  1. Variáveis ​​C# e tipos de dados (primitivos)
  2. Escopo da variável C#
  3. Palavra-chave estática C#
  4. Modelos de classe C++
  5. Variáveis ​​C, Constantes e Literais
  6. Variáveis ​​e tipos C++:int, double, char, string, bool
  7. Java - Tipos de Variáveis
  8. C - Variáveis
  9. C - Classes de Armazenamento
  10. C - Regras de Escopo