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

Classe de stockage C

Classe de stockage C

Dans ce didacticiel, vous découvrirez la portée et la durée de vie des variables locales et globales. En outre, vous découvrirez les variables statiques et de registre.

Chaque variable en programmation C possède deux propriétés :le type et la classe de stockage.

Le type fait référence au type de données d'une variable. De plus, la classe de stockage détermine la portée, la visibilité et la durée de vie d'une variable.

Il existe 4 types de classe de stockage :

  1. automatique
  2. externe
  3. statique
  4. s'inscrire

Variable locale

Les variables déclarées à l'intérieur d'un bloc sont des variables automatiques ou locales. Les variables locales n'existent qu'à l'intérieur du bloc dans lequel elles sont déclarées.

Prenons un exemple.

#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;
}

Lorsque vous exécutez le programme ci-dessus, vous obtiendrez une erreur identifiant non déclaré i . C'est parce que je est déclaré dans le for bloc de boucle. En dehors du bloc, c'est non déclaré.

Prenons un autre exemple.


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

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

Dans l'exemple ci-dessus, n1 est local à main() et n2 est local à func() .

Cela signifie que vous ne pouvez pas accéder au n1 variable dans func() car il n'existe qu'à l'intérieur de main() . De même, vous ne pouvez pas accéder au n2 variable dans main() car il n'existe qu'à l'intérieur de func() .

Variable globale

Les variables déclarées en dehors de toutes les fonctions sont appelées variables externes ou globales. Ils sont accessibles depuis n'importe quelle fonction du programme.

Exemple 1 :Variable globale

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

int n = 5;  // global variable

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

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

Sortie

n = 7

Supposons qu'une variable globale soit déclarée dans file1 . Si vous essayez d'utiliser cette variable dans un autre fichier file2 , le compilateur se plaindra. Pour résoudre ce problème, le mot-clé extern est utilisé dans file2 pour indiquer que la variable externe est déclarée dans un autre fichier.

Enregistrer une variable

Le register mot clé est utilisé pour déclarer des variables de registre. Les variables de registre étaient censées être plus rapides que les variables locales.

Cependant, les compilateurs modernes sont très bons pour l'optimisation du code, et il y a de rares chances que l'utilisation de variables de registre rende votre programme plus rapide.

Sauf si vous travaillez sur des systèmes embarqués où vous savez comment optimiser le code pour l'application donnée, il n'y a pas d'utilisation de variables de registre.

Variable statique

Une variable statique est déclarée en utilisant le static mot-clé. Par exemple ;

static int i;

La valeur d'une variable statique persiste jusqu'à la fin du programme.

Exemple 2 :Variable statique

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

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

Sortie

6 11

Lors du premier appel de fonction, la valeur de c est initialisé à 1. Sa valeur est augmentée de 5. Maintenant, la valeur de c est 6, qui est imprimé à l'écran.

Lors du deuxième appel de fonction, c n'est pas réinitialisé à 1. C'est parce que c est une variable statique. La valeur c est augmenté de 5. Maintenant, sa valeur sera 11, qui est imprimée à l'écran.


Langue C

  1. Variables C# et types de données (primitifs)
  2. Portée des variables C#
  3. Mot-clé statique C#
  4. Modèles de classe C++
  5. C Variables, constantes et littéraux
  6. Variables et types C++ :int, double, char, string, bool
  7. Java - Types de variables
  8. C- Variables
  9. C - Classes de stockage