Notions de base sur les variables statiques
Qu'est-ce qu'une variable statique ?
Les variables statiques sont un type particulier de variable en programmation C qui présentent des caractéristiques uniques par rapport aux variables régulières. Elles sont déclarées à l'aide du mot clé static et possèdent des propriétés distinctes :
- Allocation mémoire : Les variables statiques n'allouent de la mémoire qu'une seule fois au cours de toute l'exécution du programme.
- Durée de vie : Elles existent pendant toute la durée d'exécution du programme.
- Initialisation par défaut : Si elles ne sont pas initialisées explicitement, les variables statiques sont automatiquement initialisées à zéro.
Types de variables statiques
Il existe deux principaux types de variables statiques en C :
Variables locales statiques
void exampleFunction() {
static int counter = 0;
counter++;
printf("Fonction appelée %d fois\n", counter);
}
Variables globales statiques
static int globalCounter = 0; // Visible uniquement dans ce fichier
Caractéristiques principales
| Caractéristique |
Description |
| Allocation mémoire |
Stockée dans le segment de données |
| Initialisation |
Zéro par défaut |
| Portée |
Dépend de l'emplacement de la déclaration |
| Durée de vie |
Toute l'exécution du programme |
Visualisation de la mémoire
graph TD
A[Variable statique] --> B[Allouée dans le segment de données]
B --> C[Préserve la valeur entre les appels de fonctions]
B --> D[Initialisée une seule fois]
Exemple pratique
#include <stdio.h>
void demonstrateStatic() {
static int persistentValue = 0;
int regularValue = 0;
persistentValue++;
regularValue++;
printf("Valeur statique : %d\n", persistentValue);
printf("Valeur régulière : %d\n", regularValue);
}
int main() {
demonstrateStatic(); // Statique : 1, Régulière : 1
demonstrateStatic(); // Statique : 2, Régulière : 1
demonstrateStatic(); // Statique : 3, Régulière : 1
return 0;
}
Meilleures pratiques
- Utilisez les variables statiques lorsque vous avez besoin de maintenir l'état entre les appels de fonctions.
- Faites attention aux variables globales statiques pour éviter les effets secondaires non désirés.
- Initialisez explicitement les variables statiques pour plus de clarté.
Aperçu LabEx
Chez LabEx, nous recommandons de considérer les variables statiques comme un outil puissant pour gérer efficacement l'état et la mémoire du programme.