Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

C - Classes de stockage

Une classe de stockage définit la portée (visibilité) et la durée de vie des variables et/ou des fonctions dans un programme C. Ils précèdent le type qu'ils modifient. Nous avons quatre classes de stockage différentes dans un programme C −

La classe de stockage automatique

La auto la classe de stockage est la classe de stockage par défaut pour toutes les variables locales.

{
   int mount;
   auto int month;
}

L'exemple ci-dessus définit deux variables avec dans la même classe de stockage. 'auto' ne peut être utilisé que dans des fonctions, c'est-à-dire des variables locales.

La classe de stockage du registre

Le registre La classe de stockage est utilisée pour définir des variables locales qui doivent être stockées dans un registre au lieu de la RAM. Cela signifie que la variable a une taille maximale égale à la taille du registre (généralement un mot) et que l'opérateur unaire '&' ne peut pas lui être appliqué (car il n'a pas d'emplacement mémoire).

{
   register int  miles;
}

Le registre ne doit être utilisé que pour les variables nécessitant un accès rapide telles que les compteurs. Il convient également de noter que définir 'registre' ne signifie pas que la variable sera stockée dans un registre. Cela signifie qu'il POURRAIT être stocké dans un registre en fonction des restrictions matérielles et de mise en œuvre.

La classe de stockage statique

Le statique La classe de stockage indique au compilateur de conserver une variable locale pendant toute la durée de vie du programme au lieu de la créer et de la détruire à chaque fois qu'elle entre et sort de la portée. Par conséquent, rendre les variables locales statiques leur permet de conserver leurs valeurs entre les appels de fonction.

Le modificateur statique peut également être appliqué aux variables globales. Lorsque cela est fait, la portée de cette variable est limitée au fichier dans lequel elle est déclarée.

En programmation C, quand statique est utilisé sur une variable globale, il provoque le partage d'une seule copie de ce membre par tous les objets de sa classe.

Démo en direct
#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);
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

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

La classe de stockage externe

L'externe La classe de stockage est utilisée pour donner une référence à une variable globale visible par TOUS les fichiers du programme. Lorsque vous utilisez 'extern', la variable ne peut pas être initialisée cependant, elle pointe le nom de la variable vers un emplacement de stockage préalablement défini.

Lorsque vous avez plusieurs fichiers et que vous définissez une variable ou une fonction globale, qui sera également utilisée dans d'autres fichiers, alors extern sera utilisé dans un autre fichier pour fournir la référence de la variable ou de la fonction définie. Juste pour comprendre, externe est utilisé pour déclarer une variable globale ou une fonction dans un autre fichier.

Le modificateur extern est le plus couramment utilisé lorsqu'il y a deux fichiers ou plus partageant les mêmes variables globales ou fonctions, comme expliqué ci-dessous.

Premier fichier :main.c

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

Deuxième fichier :support.c

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

Ici, externe est utilisé pour déclarer count dans le deuxième fichier, où comme il a sa définition dans le premier fichier, main.c. Maintenant, compilez ces deux fichiers comme suit −

$gcc main.c support.c

Il produira le programme exécutable a.out . Lorsque ce programme est exécuté, il produit le résultat suivant −

count is 5

Langue C

  1. Classes et objets C++
  2. Fonction amie C++ et classes amies
  3. Classe de stockage C
  4. Structures et classes en C++
  5. Python String count() avec des EXEMPLES
  6. Python List count() avec des EXEMPLES
  7. Java - Objet et classes
  8. Classes de stockage en C++
  9. Interfaces en C++ (classes abstraites)