la portée du mot clé static après l'appel de fonction
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include<stdio.h>
void Afficher()
{
static int x=0;
int y=0;
printf("x==%d, y==%d",x,y);
x++;
y++;
}
int main()
{
printf("-1-\n");
Afficher();
printf("-2-\n");
Afficher();
printf("-3-\n");
Afficher();
return 1;
} |
le resultat est
Code:
1 2 3 4 5 6 7 8 9 10 11
|
-1-
x==0, y==0
-2-
x==1, y==0
-3-
x==2, y==0 |
ma question est la suivante:
pourquoi il n'a pu eu destruction de la valeur de x après chaque appel de fonction et pourtant que x n'est pas une variable global??
et je ne sais pas si c'est l'occasion aussi de poser la question sur les différents type en C (je veux dire register, static, const...)???
merci d'avance!