C Programmation

Statique en programmation C

Statique en programmation C
Dans ce tutoriel, nous allons expliquer le mot-clé static en l'appliquant dans des variables et des fonctions. Statique est un mot-clé utilisé dans la programmation C, et il peut être appliqué en utilisant la syntaxe suivante :

statique type de données nom de variable

Variables locales statiques

Lorsqu'une variable dans une fonction est statique, la variable conserve sa valeur entre les appels de fonction.

//Exemple 1.c
#inclure
int fun1()

nombre entier=0 ;
compte++ ;
nombre de retours ;

int fun2()

nombre d'entiers statiques=0 ;
compte++ ;
nombre de retours ;

int main()

printf("fun1 1er appel renvoie : %d\n",fun1());
printf("fun1 2e appel renvoie : %d\n\n",fun1());
printf("fun2 1er appel renvoie : %d\n",fun2());
printf("fun2 2ème appel renvoie : %d\n",fun2());
renvoie 0 ;


Dans l'exemple 1.c, on a deux fonctions : amusant1() et amusant2(). Dans amusant1(), nous déclarons une variable (count) et l'initialisons à 0. Ensuite, nous incrémentons la variable count et renvoyons la valeur résultante. Utilisant principale(), nous appelons amusant1() deux fois, et à chaque fois, une valeur de 1 est renvoyée car la variable count est effacée lorsque l'appel à amusant1() est terminé. Dans amusant2() nous avons déclaré la variable count comme variable statique. Par conséquent, sa valeur est préservée. Utilisant principale(), nous appelons amusant2() deux fois : la première fois, une valeur de 1 est renvoyée, et la deuxième fois, une valeur de 2 est renvoyée.

Variables globales statiques

Une variable globale statique se comporte de la même manière que les autres variables globales, mais elle n'est pas accessible depuis un autre programme C.

Fonctions statiques

En C, les fonctions sont globales par défaut. Cependant, si nous déclarons une fonction statique, alors la fonction est locale et ne peut pas être accessible depuis un autre programme C.

Initialisation de variables statiques

Si une variable statique n'est pas explicitement initialisée, alors elle est initialisée à 0.

//Exemple2.c
#inclure
int main()

statique i;
printf("Valeur de i : %d\n",i);
renvoie 0 ;


Dans Exemple2.c, nous avons déclaré une variable statique i qui n'est pas initialisée. Cependant, comme la variable est statique, elle est automatiquement initialisée à 0.

Il est important de noter qu'une variable statique doit être initialisée par un littéral constant ; nous ne pouvons pas utiliser la valeur de retour d'une fonction pour initialiser une variable statique.

//Exemple3.c
#inclure
int fun1()

retour 5;

int main()

static int i = fun1();
printf("Valeur de i : %d\n",i);
renvoie 0 ;


Dans l'exemple3.c, nous essayons d'initialiser une variable statique en utilisant la valeur de retour de amusant1(). Cependant, comme vous pouvez le voir, une erreur est renvoyée lorsque le code est compilé.

Résumé

La durée de vie d'une variable statique et la durée de vie du programme sont égales.

Si une variable statique n'est pas initialisée, alors elle prendra une valeur par défaut de 0.

Ni une variable statique globale ni une fonction statique ne sont accessibles depuis un programme autre que celui dans lequel elle a été définie.

Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...