Statique est un mot-clé utilisé dans le langage de programmation C. Il peut être utilisé à la fois avec des variables et des fonctions, c'est-à-dire que nous pouvons également déclarer une variable statique et une fonction statique. Une variable ordinaire est limitée à la portée dans laquelle elle est définie, tandis que la portée de la variable statique s'étend sur tout le programme.
Le mot-clé statique peut être utilisé dans les situations suivantes :
Lorsqu'une variable globale est déclarée avec un mot-clé statique, elle est alors appelée variable globale statique. Il est déclaré en haut du programme, et sa visibilité s'étend sur tout le programme.
Lorsqu'une fonction est déclarée avec un mot-clé statique appelé fonction statique. Sa durée de vie s'étend sur toute la durée du programme.
Lorsqu'une variable locale est déclarée avec un mot-clé statique, elle est alors appelée variable locale statique. La mémoire d'une variable locale statique est valable tout au long du programme, mais la portée de visibilité d'une variable est la même que celle des variables locales automatiques. Cependant, lorsque la fonction modifie la variable locale statique lors du premier appel de fonction, cette valeur modifiée sera également disponible pour le prochain appel de fonction.
Lorsque les variables membres sont déclarées avec un mot-clé statique dans une classe, on parle alors de variables membres statiques. Ils sont accessibles par toutes les instances d'une classe, et non par une instance spécifique.
La fonction membre d'une classe déclarée avec un mot-clé static est appelée méthode statique. Il est accessible par toutes les instances d'une classe, pas par une instance spécifique.
Comprenons à travers un exemple.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
Dans le code ci-dessus, la fonction func() est appelée. Dans func(), la variable count est mise à jour. Dès que la fonction termine son exécution, la mémoire de la variable count sera supprimée. Si nous ne voulons pas supprimer le décompte de la mémoire, nous devons alors utiliser la variable count comme statique. Si nous déclarons la variable comme statique, alors la variable ne sera pas supprimée de la mémoire même lorsque la fonction terminera son exécution.
Sortir
1 1
Variable statique
Une variable statique est une variable qui conserve sa valeur à travers les différents appels de fonction.
Syntaxe
La syntaxe d'une variable statique est donnée ci-dessous :
static data_type variable_name;
Regardons un exemple simple de variable statique.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
Dans le code ci-dessus, nous avons déclaré la variable count comme statique. Lorsque func() est appelé, la valeur de count est mise à jour à 1, et lors du prochain appel de fonction, la valeur de la variable count devient 2. Par conséquent, nous pouvons dire que la valeur de la variable statique persiste dans l'appel de fonction. .
Sortir
1 2
Fonction statique
Comme nous savons que les fonctions non statiques sont globales par défaut, cela signifie que la fonction est également accessible en dehors du fichier, mais si nous déclarons la fonction comme statique, cela limite la portée de la fonction. La fonction statique est accessible uniquement dans un fichier.
La fonction statique ressemblerait à :
static void func() { printf('Hello javaTpoint'); }
Différences n/b variable statique et globale
Les variables globales sont les variables déclarées en dehors de la fonction. Ces variables globales existent au début du programme et leur portée reste jusqu'à la fin du programme. Il est également accessible en dehors du programme.
Les variables statiques sont limitées au fichier source dans lequel elles sont définies, c'est-à-dire qu'elles ne sont pas accessibles par les autres fichiers source.
Les variables statiques et globales ont une initialisation statique. Ici, l'initialisation statique signifie que si nous n'attribuons aucune valeur à la variable, alors par défaut, 0 valeur sera attribuée à la variable.
Différences entre variables locales statiques et variables globales statiques
Variable globale statique
Si la variable est déclarée avec un mot-clé statique en dehors de la fonction, elle est alors appelée variable globale statique. Il est accessible tout au long du programme.
Variable locale statique
La variable avec un mot-clé statique déclarée dans une fonction est appelée variable locale statique. La portée de la variable locale statique sera la même que celle des variables locales automatiques, mais sa mémoire sera disponible tout au long de l'exécution du programme. Lorsque la fonction modifie la valeur de la variable locale statique lors d'un appel de fonction, elle restera la même même lors du prochain appel de fonction.
Propriétés d'une variable statique
Voici les propriétés d'une variable statique :
- La mémoire d'une variable statique est allouée au sein d'une variable statique.
- Sa mémoire est disponible tout au long du programme, mais la portée restera la même que celle des variables locales automatiques. C'est
- la valeur persistera à travers les différents appels de fonction.
- Si nous n'attribuons aucune valeur à la variable, alors la valeur par défaut sera 0.
- Une variable statique globale n'est pas accessible en dehors du programme, tandis qu'une variable globale est accessible par d'autres fichiers source.