En savoir plus sur la variable statique en C [avec exemple de codage]
Publié: 2020-10-21Dans votre parcours de programmation, vous avez peut-être contourné la plupart des variables. Ils sont un aspect très important pour tout programmeur, car la déclaration d'une variable détermine la taille, la disposition, la plage de valeurs stockées dans la mémoire et l'ensemble des opérations à lui appliquer. C'est le nom donné à une zone de stockage qu'un programme peut manipuler. Dans cet article, nous aborderons l'une des variables les plus importantes en C, c'est-à-dire la variable statique .
Le mot-clé statique en C est utilisé assez fréquemment. Une chose qui est souvent confondue par la plupart des programmeurs est la façon dont les variables locales et globales affectent la statique. Dans chaque cas, le mot-clé static fonctionne différemment en termes d'emplacement de stockage des données et de leur comportement tout au long du programme. Voici les principales utilisations d'un mot clé statique :
je. Une variable locale dans une fonction ou une variable locale statique : La visibilité est la même que les variables locales automatiques.
ii. Variable globale dans un module ou variable globale statique : Déclarée en haut d'un programme.
iii. Une fonction dans un module ou fonction statique : Elle existe dans tout le programme.
iv. Variable membre ou variable membre statique : accessible par toutes les instances d'une classe.

v. Une méthode ou une méthode statique : accessible par toutes les instances d'une classe.
Nous examinerons les trois cas d'utilisation et comment ils changent avec la zone de stockage de la variable et améliorent la qualité du code.
Table des matières
Qu'est-ce qu'une variable statique ?
En programmation, une variable statique est celle allouée "statiquement", ce qui signifie que sa durée de vie est tout au long de l'exécution du programme. Il est déclaré avec le mot-clé 'static' et conserve sa valeur à travers les appels de fonction.
Syntaxe:
La syntaxe d'une variable statique est :
type_données statique nom_variable ;
Déclaration de variable statique
Lorsqu'une variable statique est déclarée, une copie de celle-ci est créée. Le but principal de ceux-ci sont utilisés à la place d'une variable locale est qu'ils conservent la valeur attribuée dans la portée où elle est présente. Le programmeur n'a pas besoin d'initialiser la variable encore et encore dans la nouvelle portée d'un programme. Il existe tout au long du programme.
Statique, en général, est un spécificateur de classe de stockage appliqué à tout type de données. Il ordonne au compilateur de limiter une variable ou une fonction dans la portée du programme et persiste pendant toute la durée de vie du programme. Cette propriété permet aux variables statiques d'être encapsulées ou cachées du reste du programme, empêchant tout accès involontaire. Le développeur peut contrôler la façon dont les variables sont accessibles dans un module. C'est une bonne pratique de programmation.
Lire: Top 130+ des questions et réponses d'entrevue Java
Variable statique dans un programme
· Une variable statique reste dans l'espace mémoire pendant l'exécution de tout le code.
· La valeur d'initialisation par défaut d'une variable statique est zéro, même si elle n'est pas affectée, ce qui n'est pas le cas dans une variable locale.
· Il est obligatoire d'initialiser la variable statique à l'aide du mot-clé static en C sinon cela renverra une erreur.
· La variable statique n'est initialisée que la première fois qu'une fonction est appelée.
· Dans une variable statique , la mémoire d'une variable statique est allouée.
· Une variable statique globale n'est pas accessible en dehors du programme.

Programme de base sur variable statique en C
#include <stdio.h>
int principal()
{
printf("%d",fonc());
printf("\n%d",fonc());
renvoie 0 ;
}
fonction int ()
{
statique nombre entier = 0 ;
compter++ ;
nombre de retours ;
}
Ici, dans ce code, la variable count est déclarée comme une variable statique . À chaque appel de func(), la valeur de count est mise à jour à 1. Lors de l'appel de fonction suivant, la valeur de la variable count devient 2. Ainsi, la valeur de la variable statique persiste dans l'appel de fonction.
Sortir:
1
2
Différence entre variable locale et statique
Les variables locales et statiques sont utilisées de manière interchangeable dans un programme. Voici quelques différences clés entre les deux :
Points distinctifs | Variable locale | Variable statique |
Déclaration de mot-clé variable | 1. Elle est déclarée par une variable automatique, par exemple, int a = 1. | 1. Il est déclaré par une variable statique , par exemple, static int a = 1. |
Déclaration de variables | 2. Il est déclaré à l'intérieur de la fonction. | 2. Il est déclaré à l'intérieur ou à l'extérieur de la fonction. |
Création de variables | 3. Il est créé chaque fois qu'une fonction est appelée. | 3. Il est créé pour le 1er appel de fonction uniquement et la même variable est utilisée pour un appel ultérieur. |
Initialisation des variables | 4. Il est initialisé chaque fois qu'une fonction est appelée. | 4. Il n'est initialisé qu'une seule fois dans un programme. |
Valeur par défaut des variables | 5. Si elle n'est pas initialisée, une valeur parasite est stockée dans la variable. | 5. Si elle n'est pas initialisée, la valeur 0 est stockée dans statique par défaut. |
Résiliation variable | 6. Lorsque la fonction se termine, elle se termine. | 6. S'il est déclaré dans une fonction, il n'est accessible que dans cette fonction. La portée est limitée à cette fonction et sa durée de vie est jusqu'à ce que le programme se termine. Si elle est déclarée en dehors de la fonction, la variable sera globale et accessible par n'importe quelle fonction du fichier. La portée est le fichier, mais la durée de vie est jusqu'à ce que le programme se termine. |
Avec ce tableau, on comprend pourquoi les variables statiques sont préférées aux variables locales.
Code comprenant à la fois une variable locale et une variable statique
#include <stdio.h>
int main() {
auto int a = -15 ;
entier statique b = 5 ;
printf("La valeur de la variable auto a est %d\n", a);
printf("La valeur de la variable statique b est %d\n",b);
si(a!=0)
printf("La somme des variables statique et automatique est %d\n",(b+a));
renvoie 0 ;
}
Sortie du programme :
La valeur de la variable automatique est -15

La valeur de la variable statique est 5
La somme de la variable statique et automatique est -10
Lisez aussi : Idées de projet C
Sommaire
Le mot-clé static est largement utilisé pour de nombreuses fonctionnalités qu'il offre en programmation C. Son utilisation principale est de limiter la portée des variables définies dans une fonction ou un module. Les développeurs peuvent faire l'expérience de la sécurité, car les variables et les fonctions peuvent être masquées du programme externe grâce à l'utilisation de la variable statique . Dans de nombreux langages modernes orientés objet, l'utilisation de static est remplacée par private et public.
Si vous souhaitez en savoir plus et avez besoin du mentorat d'experts de l'industrie, consultez le diplôme PG upGrad & IIIT Banglore en développement de logiciels Full-Stack .