Utilisation de variable static
Résolu
LUFFYroooo
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
LUFFYroooo Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
LUFFYroooo Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne comprend pas comment utiliser le type static pour les variables ce qui me bloque pour un projet et j'aurais donc besoin de votre aide !
source : https://fr.wikibooks.org/wiki/Programmation_C/Classe_de_stockage
D'aprés ce que j'ai compris, cela devrai m'afficher : 123
Malheuresement, cela m'affiche 111 et je bloque la dessus !
Si quelqu'un pourrais m'éclairer ça m'aiderais grandement.
Merci.
Je ne comprend pas comment utiliser le type static pour les variables ce qui me bloque pour un projet et j'aurais donc besoin de votre aide !
source : https://fr.wikibooks.org/wiki/Programmation_C/Classe_de_stockage
int ft_test()
{
static int i;
i = 0;
i++;
ft_putnbr(i);
return(i);
}
int main()
{
ft_test();
ft_test();
ft_test();
return (0);
}
D'aprés ce que j'ai compris, cela devrai m'afficher : 123
Malheuresement, cela m'affiche 111 et je bloque la dessus !
Si quelqu'un pourrais m'éclairer ça m'aiderais grandement.
Merci.
A voir également:
- Python variable static
- Citizen code python avis - Accueil - Outils
- Vba range avec variable ✓ - Forum VB / VBA
- Mot secret python pix ✓ - Forum Python
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- \R python ✓ - Forum Python
2 réponses
Re,
Finalement j'ai compris, mais si la norme nous impose une déclaration comme ceci :
int i;
i = 0;
Comment puis-je faire ?
static int i;
static i = 0;
Cela ne marche pas car ceci est considéré comme un redéclaration, je bloque donc toujours.
Si quelqu'un peut m'aider, j'apprécierais !
Merci.
Finalement j'ai compris, mais si la norme nous impose une déclaration comme ceci :
int i;
i = 0;
Comment puis-je faire ?
static int i;
static i = 0;
Cela ne marche pas car ceci est considéré comme un redéclaration, je bloque donc toujours.
Si quelqu'un peut m'aider, j'apprécierais !
Merci.
Tu parles de quelle norme ?
J'ai essayé ceci :
En compilant avec -ansi -pedantic -Wall, mais pas d'erreur ni de warning
J'ai essayé ceci :
#include <stdio.h> void fonc(){ static int i = 0 ; printf("Fonction appellée %d fois", i ); } int main(void){ fonc(); fonc(); return 0; }
En compilant avec -ansi -pedantic -Wall, mais pas d'erreur ni de warning
Je suis a 42, et on as une norme a respecter pour la déclaration des variables :
Par exemple :
int i;
i = 0;
Nous n'avons pas le droit de déclarer nos variables comme ceci :
int i = 0;
---------------------------
Du coup pour la static je devrais faire :
static int i;
i = 0;
sauf que ça ne marche pas comme ceci.
------------------------------
Si vous avez une idée !
Et nous devons compiler avec les flags suivant : -Wall -Wextra -Werror
Merci.
Par exemple :
int i;
i = 0;
Nous n'avons pas le droit de déclarer nos variables comme ceci :
int i = 0;
---------------------------
Du coup pour la static je devrais faire :
static int i;
i = 0;
sauf que ça ne marche pas comme ceci.
------------------------------
Si vous avez une idée !
Et nous devons compiler avec les flags suivant : -Wall -Wextra -Werror
Merci.