Maison >Problème commun >Que sont les variables statiques en langage C ?

Que sont les variables statiques en langage C ?

清浅
清浅original
2019-04-30 15:30:0033473parcourir

Les variables statiques en langage C font référence aux variables modifiées par le mot-clé static. Il existe deux types de variables statiques : l'une est constituée de variables statiques globales définies sur des variables globales et l'autre est constituée de variables statiques locales définies sur des variables locales.

Que sont les variables statiques en langage C ?

[Cours recommandés : Tutoriel langage C]

Variables statiques

Les variables statiques sont déclarées via le mot-clé static Ensuite, dans l'article, nous présenterons en détail ce que sont les variables statiques en langage C et qui en ont certaines. La valeur de référence, j'espère qu'elle sera utile dans la lutte.

Statique signifie "statique" et "statique". Sa signification en langage C est en fait similaire à sa signification originale. Il signifie "statique" ou "global". souvent utilisé pour modifier des variables et des fonctions. La portée des variables ou des fonctions modifiées par static va changer. La variable est stockée sur le segment de données et la portée et le cycle de vie de la variable peuvent être modifiés. En langage C, les variables statiques sont divisées en deux formes, à savoir toutes les variables statiques et les variables statiques locales.

Variable statique globale

Ajoutez le mot-clé static devant la variable globale, et la variable globale est définie comme une variable statique globale

( 1) Emplacement en mémoire : Zone de stockage statique (la zone de stockage statique existe pendant tout l'exécution du programme)

(2) Initialisation : Les variables statiques globales non initialisées seront automatiquement initialisées à 0 par le programme

(3) Portée : les variables statiques globales ne sont pas visibles en dehors du fichier dans lequel elles sont déclarées. Exactement du point de définition à la fin du fichier.

Variable statique locale

Ajoutez le mot-clé static devant la variable locale, et la variable locale est définie comme une variable statique locale.

(1) Emplacement en mémoire : zone de stockage statique

(2) Initialisation : Les variables statiques locales non initialisées seront automatiquement initialisées à 0 par le programme (la valeur de l'objet automatique est arbitraire, sauf s'il est explicitement initialisé)

(3) Portée : La portée est toujours une portée locale Lorsque la fonction ou le bloc d'instructions qui la définit se termine, la portée se termine.

Remarque

Lorsque static est utilisé pour modifier une variable globale, cela change la portée de la variable globale (elle n'est pas visible en dehors du fichier dans lequel elle est déclarée ) ), mais son emplacement de stockage n'a pas changé, il se trouve toujours dans la zone de stockage statique.

Lorsque static est utilisé pour modifier des variables locales, il modifie l'emplacement de stockage des variables locales de la pile d'origine vers une zone de stockage statique. Cependant, la variable statique locale n'est pas détruite après avoir quitté la portée, mais réside toujours en mémoire jusqu'à la fin du programme, mais nous ne pouvons plus y accéder.

Avantages de l'utilisation de fonctions statiques en langage C

(1) Les fonctions statiques seront automatiquement allouées dans une zone de stockage qui est toujours utilisée jusqu'à la sortie du programme, évitant ainsi les appels Le push and pop des fonctions est beaucoup plus rapide.

(2) statique signifie que la portée de la fonction est limitée à ce fichier. Ne vous inquiétez pas de savoir si la fonction que vous définissez aura le même nom que la fonction dans d'autres fichiers

Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn