Maison  >  Article  >  développement back-end  >  Classes de stockage en C

Classes de stockage en C

PHPz
PHPzavant
2023-09-11 18:33:03929parcourir

Classes de stockage en C

En langage C, les caractéristiques des variables et des fonctions sont décrites par des classes de stockage, comme la visibilité et la portée des variables ou des fonctions.

Il existe quatre types de classes de stockage en langage C : les variables automatiques, les variables externes, les variables statiques et les variables de registre.

auto

La classe de stockage Auto est la classe de stockage par défaut pour toutes les variables locales. Il est créé lorsque la fonction est appelée. Lorsque l'exécution de la fonction est terminée, la variable est automatiquement détruite.

On les appelle aussi variables locales car ce sont des variables locales de la fonction. Par défaut, le compilateur leur attribue des valeurs inutiles.

Portée - Les variables automatiques sont des variables locales du bloc fonction.

Valeur par défaut - La valeur Garbage est la valeur d'initialisation par défaut.

Lifetime - La durée de vie d'une variable automatique est limitée par le bloc dans lequel elle est définie.

Ceci est un exemple de variable automatique en langage C,

Exemple

Démonstration en direct

#include <stdio.h>
int main() {
   auto int a = 28;
   int b = 8;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The sun of auto variable & integer variable : %d", (a+b));
   return 0;
}

Output

The value of auto variable : 28
The sun of auto variable & integer variable : 36

extern

Les variables externes sont également appelées variables globales. Ces variables sont définies en dehors de la fonction. Ces variables sont globalement disponibles tout au long de l'exécution de la fonction. La valeur des variables globales peut être modifiée via des fonctions.

Portée - Ils ne sont liés par aucune fonction. Ils sont partout dans le programme, c'est-à-dire globalement.

Valeur par défaut - Les variables globales ont une valeur d'initialisation par défaut de zéro.

Cycle de vie - > Jusqu'à la fin de l'exécution du programme.

Voici un exemple de variable externe en langage C,

Exemple

Démonstration en direct

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   auto int a = 28;
   extern int b;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The value of extern variables x and b : %d,%d</p><p>",x,b);
   x = 15;
   printf("The value of modified extern variable x : %d</p><p>",x);
   return 0;
}

Output

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

static

Les variables statiques ne sont initialisées qu'une seule fois. Le compilateur conserve cette variable jusqu'à la fin du programme. Les variables statiques peuvent être définies à l'intérieur ou à l'extérieur d'une fonction.

Portée - Ce sont des variables locales du bloc.

Default - > La valeur d'initialisation par défaut est zéro.

Cycle de vie - Jusqu'à la fin de l'exécution du programme.

Voici un exemple de variable statique en C,

Exemple

Démonstration en direct

#include <stdio.h>
int main() {
   auto int a = -28;
   static int b = 8;
   printf("The value of auto variable : %d</p><p>", a);
   printf("The value of static variable b : %d</p><p>",b);
   if(a!=0)
   printf("The sum of static variable and auto variable : %d</p><p>",(b+a));
   return 0;
}

Output

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

register

Les variables de registre indiquent au compilateur de stocker la variable dans un registre CPU plutôt qu'en mémoire. Les variables fréquemment utilisées sont conservées dans des registres, où elles sont accessibles plus rapidement. Nous ne pouvons jamais obtenir les adresses de ces variables.

Portée - Ils sont limités à l'intérieur de la fonction.

Valeur par défaut - La valeur d'initialisation par défaut est une poubelle.

Lifetime - Avant que l'exécution du bloc de code qui le définit se termine.

Voici un exemple de variable de registre en C :

Exemple

Démo en ligne

#include <stdio.h>
int main() {
   register char x = &#39;S&#39;;
   register int a = 10;
   auto int b = 8;
   printf("The value of register variable b : %c</p><p>",x);
   printf("The sum of auto and register variable : %d",(a+b));
   return 0;
}

Sortie

The value of register variable b : S
The sum of auto and register variable : 18

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer