Maison > Article > développement back-end > 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.
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,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; }
The value of auto variable : 28 The sun of auto variable & integer variable : 36
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,
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; }
The value of auto variable : 28 The value of extern variables x and b : 32,8 The value of modified extern variable x : 15
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,
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; }
The value of auto variable : -28 The value of static variable b : 8 The sum of static variable and auto variable : -20
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 :
Démo en ligne
#include <stdio.h> int main() { register char x = 'S'; 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; }
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!