Utilisation de variable static
Résolu/Fermé
LUFFYroooo
LUFFYroooo
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
LUFFYroooo
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
A voir également:
- Utilisation de variable static
- Utilisation de variable static ✓ - Forum - C
- Variable STATIC en C++ ✓ - Forum - C++
- Utiliser des variables Bash dans Awk ✓ - Forum - Shell
- [Word] Utilisation de variables ✓ - Forum - Word
- Utiliser une variable pour définir le membre de la liste ✓ - Forum - Python
2 réponses
LUFFYroooo
Modifié par LUFFYroooo le 19/02/2017 à 04:59
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
Modifié par LUFFYroooo le 19/02/2017 à 04:59
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
LUFFYroooo
Modifié par LUFFYroooo le 19/02/2017 à 22:20
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
Modifié par LUFFYroooo le 19/02/2017 à 22:20
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.
Dalfab
20 févr. 2017 à 08:59
- Messages postés
- 652
- Date d'inscription
- dimanche 7 février 2016
- Statut
- Membre
- Dernière intervention
- 15 mai 2022
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
20 févr. 2017 à 08:59
Le problème c'est que les règles intergalactiques sont :
Il n'y a pas d'alternative.
int i = 0: // initialiser dès que possible une variable non statique
static int j = 1; // une statique NE PEUT ETRE INITIALISÉE QUE COMME CELA
int k;
k = 3; // IGNOMINIE, dangereux mais à un sens
Il n'y a pas d'alternative.
LUFFYroooo
23 févr. 2017 à 02:21
- Messages postés
- 14
- Date d'inscription
- dimanche 24 mars 2013
- Statut
- Membre
- Dernière intervention
- 6 juillet 2017
- Messages postés
- 652
- Date d'inscription
- dimanche 7 février 2016
- Statut
- Membre
- Dernière intervention
- 15 mai 2022
23 févr. 2017 à 02:21
Ok merci, je pensais a ça mais c'était vraiment la dernière solution ! Ok bah merci ! On dois pas avoir le choix alors !
Merci a vous et bonne soirée !
Merci a vous et bonne soirée !