Utilisation de variable static
Résolu
LUFFYroooo
Messages postés
14
Statut
Membre
-
LUFFYroooo Messages postés 14 Statut Membre -
LUFFYroooo Messages postés 14 Statut Membre -
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
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Vba range avec variable ✓ - Forum VB / VBA
- 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
- 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
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.