logo

Statique en C

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 :

    Variable globale statique
    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.Fonction statique
    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.Variable locale statique
    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.Variables membres statiques
    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.Méthode statique
    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.