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

C - Classes de Armazenamento


Uma classe de armazenamento define o escopo (visibilidade) e o tempo de vida das variáveis ​​e/ou funções dentro de um Programa C. Eles precedem o tipo que eles modificam. Temos quatro classes de armazenamento diferentes em um programa C -

A classe de armazenamento automático


O automático classe de armazenamento é a classe de armazenamento padrão para todas as variáveis ​​locais.
{
   int mount;
   auto int month;
}

O exemplo acima define duas variáveis ​​com a mesma classe de armazenamento. 'auto' só pode ser usado dentro de funções, ou seja, variáveis ​​locais.

A classe de armazenamento de registro


O registro A classe de armazenamento é usada para definir variáveis ​​locais que devem ser armazenadas em um registrador em vez de na RAM. Isso significa que a variável tem um tamanho máximo igual ao tamanho do registrador (geralmente uma palavra) e não pode ter o operador unário '&' aplicado a ela (pois não possui um local de memória).
{
   register int  miles;
}

O registro deve ser usado apenas para variáveis ​​que requerem acesso rápido, como contadores. Deve-se notar também que definir 'registro' não significa que a variável será armazenada em um registro. Isso significa que PODE ser armazenado em um registro dependendo das restrições de hardware e implementação.

A classe de armazenamento estático


A estática A classe de armazenamento instrui o compilador a manter uma variável local em existência durante o tempo de vida do programa, em vez de criá-la e destruí-la cada vez que ela entra e sai do escopo. Portanto, tornar as variáveis ​​locais estáticas permite que elas mantenham seus valores entre as chamadas de função.

O modificador estático também pode ser aplicado a variáveis ​​globais. Quando isso é feito, faz com que o escopo dessa variável fique restrito ao arquivo no qual ela é declarada.

Na programação C, quando estático é usado em uma variável global, faz com que apenas uma cópia desse membro seja compartilhada por todos os objetos de sua classe.
Demonstração ao vivo
#include <stdio.h>
 
/* function declaration */
void func(void);
 
static int count = 5; /* global variable */
 
main() {

   while(count--) {
      func();
   }
	
   return 0;
}

/* function definition */
void func( void ) {

   static int i = 5; /* local static variable */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -
i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

A classe de armazenamento externo


O externo A classe de armazenamento é usada para fornecer uma referência de uma variável global que é visível para TODOS os arquivos de programa. Quando você usa 'extern', a variável não pode ser inicializada, no entanto, ela aponta o nome da variável para um local de armazenamento que foi definido anteriormente.

Quando você tem vários arquivos e define uma variável ou função global, que também será usada em outros arquivos, então extern será usado em outro arquivo para fornecer a referência da variável ou função definida. Apenas para compreensão, externo é usado para declarar uma variável global ou função em outro arquivo.

O modificador extern é mais comumente usado quando há dois ou mais arquivos compartilhando as mesmas variáveis ​​globais ou funções, conforme explicado abaixo.

Primeiro arquivo:main.c
#include <stdio.h>
 
int count ;
extern void write_extern();
 
main() {
   count = 5;
   write_extern();
}

Segundo arquivo:support.c
#include <stdio.h>
 
extern int count;
 
void write_extern(void) {
   printf("count is %d\n", count);
}

Aqui, externo está sendo usado para declarar count no segundo arquivo, onde como tem sua definição no primeiro arquivo, main.c. Agora, compile esses dois arquivos da seguinte forma -
$gcc main.c support.c

Ele irá produzir o programa executável a.out . Quando este programa é executado, ele produz o seguinte resultado -
count is 5

Linguagem C

  1. Classes e objetos C++
  2. Função de amigo C++ e classes de amigo
  3. Classe de armazenamento C
  4. Estruturas e classes em C ++
  5. Python String count() com EXEMPLOS
  6. Python List count() com EXEMPLOS
  7. Java - Objeto e Classes
  8. Classes de armazenamento em C++
  9. Interfaces em C++ (classes abstratas)
  10. C# - Aulas